Received: from localhost ([::1]:58985 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1Wx4kG-0004zZ-OF; Tue, 17 Jun 2014 18:33:00 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:47243 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1Wx4k5-0004zR-0U for wikineurotic@lojban.org; Tue, 17 Jun 2014 18:32:57 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Tue, 17 Jun 2014 18:32:48 -0700 From: "Apache" Date: Tue, 17 Jun 2014 18:32:48 -0700 To: wikineurotic@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: 0.5 (/) X-Spam_score: 0.5 X-Spam_score_int: 5 X-Spam_bar: / X-Spam-Report: Spam detection software, running on the system "stodi.digitalkingdom.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The page gadri: an unofficial commentary from a logical point of view was changed by guskant at 01:32 UTC Comment: link You can view the page by following this link: http://www.lojban.org/tiki/gadri%3A%20an%20unofficial%20commentary%20from%20a%20logical%20point%20of%20view [...] Content analysis details: (0.5 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.4 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT [173.13.139.235 listed in bb.barracudacentral.org] -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 1.0 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS Subject: [Wikineurotic] Wiki page gadri: an unofficial commentary from a logical point of view changed by guskant X-BeenThere: wikineurotic@lojban.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: webmaster@lojban.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: wikineurotic-bounces@lojban.org VGhlIHBhZ2UgZ2Fkcmk6IGFuIHVub2ZmaWNpYWwgY29tbWVudGFyeSBmcm9tIGEgbG9naWNhbCBw b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMDE6MzIgVVRDCkNvbW1lbnQ6 IGxpbmsKCllvdSBjYW4gdmlldyB0aGUgcGFnZSBieSBmb2xsb3dpbmcgdGhpcyBsaW5rOgogCmh0 dHA6Ly93d3cubG9qYmFuLm9yZy90aWtpL2dhZHJpJTNBJTIwYW4lMjB1bm9mZmljaWFsJTIwY29t bWVudGFyeSUyMGZyb20lMjBhJTIwbG9naWNhbCUyMHBvaW50JTIwb2YlMjB2aWV3CgpZb3UgY2Fu IHZpZXcgYSBkaWZmIGJhY2sgdG8gdGhlIHByZXZpb3VzIHZlcnNpb24gYnkgZm9sbG93aW5nIHRo aXMgbGluazogCmh0dHA6Ly93d3cubG9qYmFuLm9yZy90aWtpL3Rpa2ktcGFnZWhpc3RvcnkucGhw P3BhZ2U9Z2FkcmklM0ElMjBhbiUyMHVub2ZmaWNpYWwlMjBjb21tZW50YXJ5JTIwZnJvbSUyMGEl MjBsb2dpY2FsJTIwcG9pbnQlMjBvZiUyMHZpZXcmY29tcGFyZT0xJm9sZHZlcj0yMyZuZXd2ZXI9 MjQKCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgpUaGUgY2hhbmdlcyBpbiB0aGlzIHZlcnNpb24gZm9sbG93IGJlbG93LCBmb2xsb3dl ZCBhZnRlciBieSB0aGUgY3VycmVudCBmdWxsIHBhZ2UgdGV4dC4KKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCgorLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpAQCAtTGluZXM6 IDE2MC0xNjQgY2hhbmdlZCB0byArTGluZXM6IDE2MC0xNjQgQEAKKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQnkgYSBzcGVha2VyIHdo byB0aGlua3MgdGhhdCBhIGN1dC1vZmYgcGllY2Ugb2YgYnJlYWQgaXMgYWxzbyBicmVhZCwgYnJl YWQgaXMgcmVnYXJkZWQgYXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4K Ci0gW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3L3BD R2VZQ0U5bDFRSnwoUmVsYXRlZCBkaXNjdXNzaW9uOiBmb3IgdGhlIGNhc2Ugb2Yge2tvJ2F9PXts byBzaWRib30sIEkgd3JvdGUgdGhlIHNhbWUgcHJvb2Ygb25seSBpbiBMb2piYW4uKV0KKyBbaHR0 cDovL2d1c2thbnQuZ2l0aHViLmlvL2xvamJvL2pldG51amFyY28uaHRtbHwoSSB3cm90ZSB0aGUg c2FtZSBwcm9vZiBvbmx5IGluIExvamJhbi4pXQoKISEhISMgQSBsb2dpY2FsIGF4aW9tIG9uIHBs dXJhbCBjb25zdGFudAoKCgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKVGhlIG5ldyBwYWdlIGNvbnRlbnQgZm9sbG93cyBiZWxvdy4K KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKCigoQlBGSyBTZWN0aW9uOiBnYWRyaXxCUEZLJ3MgZ2FkcmkgcGFnZSkpIGNvbnRhaW5zIGV4 cHJlc3Npb25zIG1pc2xlYWRpbmcgcGVvcGxlIHdobyBoYXZlIGF0IGxlYXN0IGEgbGl0dGxlIGtu b3dsZWRnZSBvZiBsb2dpYyAoW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC90b3BpYy9sb2pi YW4vUkF0RTdZay1kcXcvZGlzY3Vzc2lvbnxkaXNjdXNzaW9uXSkuCgpJIHdpbGwgbWFrZSBoZXJl IGEgY29tbWVudGFyeSBvbiBCUEZLJ3MgZ2Fkcmkgc28gdGhhdCBpdCBpcyB1bmRlcnNvb2QgYnkg dGhlbSBjb3JyZWN0bHkuCgoKCnttYWtldG9jfQoKCgohISMgR2xvc3NhcnkKCldlIHdpbGwgdXNl IHRoZSBmb2xsb3dpbmcgdGVybXMgaW4gdGhpcyBjb21tZW50YXJ5LgoKO19fYXJndW1lbnQgKHN1 bXRpKV9fOiBTeW1ib2wgdGhhdCByZWZlcnMgdG8gYSByZWZlcmVudCwgb3IgdGhhdCBhbm90aGVy IGFyZ3VtZW50IGNhbiBiZSBzdWJzdGl0dXRlZCBmb3IuCgpeR3JhbW1hdGljYWxseSwgYWxsIHRo ZXNlIGFyZSBzdW10aTogYXJndW1lbnRzLCB7emknb30gd2hpY2ggcmVtb3ZlcyBhIHBsYWNlIGZv ciBhbiBhcmd1bWVudCwge2tvfSB3aGljaCByZWZlcnMgdG8gbGlzdGVuZXIocykgYW5kIGZvcm1z IGltcGVyYXRpdmUsIHttYX0gd2hpY2ggZm9ybXMgaW50ZXJyb2dhdGl2ZSB0byBhc2sgd2hpY2gg c3VtdGkgbWFrZXMgdGhlIHN0YXRlbWVudCB0cnVlLCBzdW10aSBhbmQgcmVsYXRpdmUgY2xhdXNl cyAoe3pvJ2Ugbm9pIGJyb2RhfS4uLiksIHF1YW50aWZpZXIgYW5kIHN1bXRpL3NlbGJyaSAoe25v ZGF9LCB7Y2kgbG8gYnJvZGF9LCB7cm8gYnJvZGF9Li4uKSAsIHN1bXRpIGNvbm5lY3RlZCBieSBj b25uZWN0aXZlcyAoe2tvJ2EgLmUga28nZX0uLi4pLiBIb3dldmVyLCBpbiB0aGlzIGFydGljbGUs ICJzdW10aSIgcmVmZXJzIHRvIGFuIGFyZ3VtZW50IG9mIGxvZ2ljIHJlcHJlc2VudGVkIGluIExv amJhbi5eCgo7X191bml2ZXJzZSBvZiBkaXNjb3Vyc2VfXzogU2V0IG9mIGFsbCByZWZlcmVudHMg b2YgYXJndW1lbnRzLiBJdCBpcyBuYXR1cmFsbHkgYSB1bml2ZXJzZSB0aGF0IGlzIGRpc2N1c3Nl ZC4gQSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgZGVwZW5kcyBvbiB0aGUgY29udGV4dC4KCjtfX2Nv bnN0YW50X186IEFyZ3VtZW50IHRoYXQgcmVmZXJzIHRvIGEgcmVmZXJlbnQuCgo7X192YXJpYWJs ZV9fOiBBcmd1bWVudCBhcyBhIHBsYWNlIGhvbGRlci4gSXQgZG9lcyBub3QgcmVmZXIgdG8gYW55 dGhpbmcuIEl0IGlzIHRvIGJlIHN1YnN0aXR1dGVkIGZvci4gVmFyaWFibGUgb3RoZXIgdGhhbiBi b3VuZCB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgZGVmaW5lZCBiZWxvdyBpcyBjYWxsZWQgX19mcmVl IHZhcmlhYmxlX18uIFRoZSB0cnV0aCB2YWx1ZSBvZiBhIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMg YSBmcmVlIHZhcmlhYmxlIGlzIGluZGVmaW5pdGUuIFN1Y2ggYSBzZW50ZW5jZSBpcyBjYWxsZWQg X19vcGVuIHNlbnRlbmNlX18uCgpeSW4gTG9qYmFuLCB7a2UnYX0gYW5kIHtjZSd1fSBhcmUgYWx3 YXlzIGZyZWUgdmFyaWFibGVzLiBBIHNlbnRlbmNlIGluIE5PSS1jbGF1c2Ugb3IgTlUtY2xhdXNl IHdpdGgge2NlJ3V9IGlzIG9wZW4uIChBIHNlbnRlbmNlIGluIE5VLWNsYXVzZSB3aXRoIG5vIHtj ZSd1fSBoYXMgYSB0cnV0aCB2YWx1ZSwgYnV0IGVhY2ggb2YgdGhlIGluc2lkZSBhbmQgdGhlIG91 dHNpZGUgb2YgTlUtY2xhdXNlIGhhcyBhbiBpbmRlcGVuZGVudCB1bml2ZXJzZSBvZiBkaXNjb3Vy c2UsIGFuZCB0aHVzIGVhY2ggb2YgdGhlbSBoYXMgYW4gaW5kZXBlbmRlbnQgdHJ1dGggdmFsdWUg KGZvciBleGFtcGxlLCBzZWUgW2h0dHA6Ly9sb2piYW4uZ2l0aHViLmlvL2NsbC85LzcvfENMTDku N10pLiBJbiBkZWZpbml0aW9ucyBvZiB3b3JkcyBpbiBMb2piYW4sIGtvJ1YvZm8nViBzZXJpZXMg e2tvJ2EsIGtvJ2UsIC4uLn0gb2Ygc2VsbWEnbyBLT2hBNCBhcmUgdXNlZCBhcyBmcmVlIHZhcmlh YmxlcywgYnV0IGl0IGlzIG9ubHkgYSBjdXN0b20gZm9yIGNvbnZlbmllbmNlLiBBbGwgY21hdm8g b2YgS09oQTIsMyw0LDUsNiBhbmQge3pvJ2V9IG9mIEtPaEE3IGFyZSBlc3NlbnRpYWxseSBjb25z dGFudHMuIENvbnNpZGVyaW5nIHRoZSBjYXNlIHRoYXQgYm90aCBjb25zdGFudHMgYW5kIGJvdW5k IHZhcmlhYmxlcyAodG8gYmUgZGVmaW5lZCBiZWxvdykgYXBwZWFyIGluIGEgc3RhdGVtZW50LCAi Y29uc3RhbnRzIiBhcmUgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgdG8gYmUgU2tvbGVtIGZ1bmN0aW9u cy4gU2VlICgofCNCb3VuZF92YXJpYWJsZXNfYW5kX2NvbnN0YW50c19pbl9hX3N0YXRlbWVudHxT ZWN0aW9uIDMuMi4yKSkgZm9yIGRldGFpbC5eCgo7X19xdWFudGlmeV9fOiBJbiBzdWJzdGl0dXRp bmcgcG9zc2libGUgYXJndW1lbnRzIG9uZSBieSBvbmUgZm9yIGEgdmFyaWFibGUgaW4gYSBzZW50 ZW5jZSwgY291bnQgdGhlIG51bWJlciBvZiByZWZlcmVudHMgdGhhdCBtYWtlIHRoZSBzZW50ZW5j ZSB0cnVlLCBhbmQgcHJlZml4IHRoZSBudW1iZXIgdG8gdGhlIHZhcmlhYmxlLgoKO19fcXVhbnRp Zmllcl9fOiBOdW1iZXIgdXNlZCBmb3IgcXVhbnRpZmljYXRpb24uIEJlc2lkZXMge3BhfSwge3Jl fSwge3ZlaSBueSBzdSdpIHBhICh2ZSdvKX0gYW5kIHNvIG9uLCB7cm99ICJhbGwiIGFuZCB7c3Un b30gInRoZXJlIGlzIG9uZSBvciBtb3JlIiBhcmUgYWxzbyBxdWFudGlmaWVycy4KCjtfX2JvdW5k IHZhcmlhYmxlX186IFZhcmlhYmxlIHByZWZpeGVkIGJ5IGEgcXVhbnRpZmllci4gQXMgYSByZXN1 bHQgb2YgcXVhbnRpZmljYXRpb24sIHRoZXJlIGlzIG5vIHJvb20gZm9yIHN1YnN0aXR1dGluZyBh biBhcmJpdHJhcnkgYXJndW1lbnQgZm9yIHRoZSB2YXJpYWJsZS4KCl5JbiBMb2piYW4sIHtkYX0s IHtkZX0gYW5kIHtkaX0gYXJlIGJvdW5kIHZhcmlhYmxlcy4gRm9yIGV4YW1wbGUsIHtybyBkYSB6 byd1IGRhIGJyb2RhfSBtZWFucyAiRm9yIGFsbCB7ZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNj b3Vyc2UsIHtkYSBicm9kYX0gaXMgdHJ1ZS4iIEluIHRoZSBjYXNlIHRoYXQge2RhfSwge2RlfSBv ciB7ZGl9IGFyZSBub3QgcHJlZml4ZWQgYnkgYSBxdWFudGlmaWVyLCB0aGV5IGFyZSByZWdhcmRl ZCBhcyBpbXBsaWNpdGx5IHByZWZpeGVkIGJ5IHtzdSdvfS5eCgo7X19kb21haW5fXzogUmFuZ2Ug b2YgcmVmZXJlbnRzIHRvIGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlhYmxlLCBvciByYW5nZSB0 byBiZSBjb25zaWRlcmVkIGluIGNvdW50aW5nIHJlZmVyZW50cyBpbiBxdWFudGlmaWNhdGlvbi4K Cl5JbiBMb2piYW4sIGEgZG9tYWluIG9mIGEgYm91bmQgdmFyaWFibGUgY2FuIGJlIGxpbWl0ZWQg d2l0aCBhbiBleHByZXNzaW9uIHtkYSBwb2kuLi59LiBGb3IgZXhhbXBsZSwge3JvIGRhIHBvaSBr ZSdhIGJyb2RhIHpvJ3UgZGEgYnJvZGV9IG1lYW5zICJGb3IgYWxsIHtkYX0gdGhhdCBhcmUgeDEg b2Yge2Jyb2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCB7ZGEgYnJvZGV9IGlzIHRy dWUuIiBJZiB7cG9pLi4ufSBkb2VzIG5vdCBmb2xsb3cge2RhfSwgdGhlIGRvbWFpbiBpcyB0aGUg d2hvbGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLl4KCjtfX3RhdXRvbG9neV9fOiBTZW50ZW5jZSB0 aGF0IGlzIGFsd2F5cyB0cnVlIGluZGVwZW5kZW50bHkgb2YgY29udGV4dC4ge2tvJ2EgZHUga28n YX0gZXRjLgoKO19fbG9naWNhbCBheGlvbXNfXzogU2VudGVuY2VzIHNlbGVjdGVkIGZyb20gdGF1 dG9sb2dpZXMgc28gdGhhdCBhbGwgdGF1dG9sb2dpZXMgYXJlIHByb3ZlZCBmcm9tIHRoZW0gd2l0 aCBydWxlcyBvZiBpbmZlcmVuY2UgdGhhdCBhcmUgZGVmaW5lZC4KCgoKISEjIFBsdXJhbCBxdWFu dGlmaWNhdGlvbgoKSW4gb3JkZXIgdG8gdW5kZXJzdGFuZCBhcmd1bWVudHMgb2YgTG9qYmFuIGZy b20gYSBsb2dpY2FsIHBvaW50IG9mIHZpZXcsIGl0IGlzIGVzc2VudGlhbCB0byBoYXZlIGEga25v d2xlZGdlIG9mIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18gKHNlZSwgZm9yIGV4YW1wbGUsIFto dHRwOi8vdGhlY29sbGVnZS5zeXIuZWR1L3Byb2ZpbGVzL3BhZ2VzL21ja2F5LXRob21hcy5odG1s fFRob21hcyBNY0theV06ICcnUGx1cmFsIFByZWRpY2F0aW9uJycsIE94Zm9yZCBVbml2ZXJzaXR5 IFByZXNzLCAyMDA2KS4KCgoKUGx1cmFsIHF1YW50aWZpY2F0aW9uIHdhcyBpbnZlbnRlZCBpbiBv cmRlciB0byBmYWNpbGl0YXRlIGV4cHJlc3Npb24gb2YgcHJvcG9zaXRpb24gdGhhdCBpcyBtZWFu aW5nZnVsIG9ubHkgd2hlbiB0aGUgcmVmZXJlbnQgb2YgYW4gYXJndW1lbnQgaXMgcGx1cmFsLiAK Cl4KCjtFeGFtcGxlOiBQZW9wbGUgZ2F0aGVyZWQsIGNvb2tlZCBhbmQgYXRlLl4KCkxvZ2ljYWxs eSwgdGhpcyBzZW50ZW5jZSBpcyBhIHByb3Bvc2l0aW9uIHRoYXQgY29uc2lzdHMgb2YgYSBjb25z dGFudCAicGVvcGxlIiBhbmQgdGhyZWUgcHJlZGljYXRlcyAiZ2F0aGVyZWQiICJjb29rZWQiIGFu ZCAiYXRlIi4gVGhlIHByZWRpY2F0ZXMgYXJlIGRpZmZlcmVudCBmcm9tIGVhY2ggb3RoZXIgaW4g cHJvcGVydHkgb2YgdHJlYXRpbmcgdGhlIGFyZ3VtZW50LiBXZSB3aWxsIGRpc2N1c3MgcHJlY2lz ZWx5IGhvdyB0aGUgYXJndW1lbnQgaW4gdGhlIHNlbnRlbmNlIGlzIHRyZWF0ZWQuCgoKCiEhISMg Q29sbGVjdGl2aXR5IGFuZCBkaXN0cmlidXRpdml0eQoKCgpDb25zaWRlciB0aGUgZXhwcmVzc2lv biAicGVvcGxlIGdhdGhlcmVkIjogYmFzZWQgb24gdGhlIG1lYW5pbmcgb2YgdGhlIHByZWRpY2F0 ZSAiZ2F0aGVyZWQiLCB0aGUgY29uc3RhbnQgInBlb3BsZSIgc2hvdWxkIHJlZmVyIHRvIHBsdXJh bCBwZW9wbGUuCgpXaGVuIHJlZmVyZW50cyBvZiBhbiBhcmd1bWVudCBzYXRpc2Z5IGEgcHJlZGlj YXRlIGFzIGNvbGxlY3RpdmUgcGx1cmFsIHRoaW5ncyBsaWtlIHRoaXMsIHdlIGV4cHJlc3MgaXQg YXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNhdGUgX19jb2xsZWN0aXZlbHlfXyIs IG9yICJ0aGUgYXJndW1lbnQgaGFzIF9fY29sbGVjdGl2aXR5X18iLgoKCgpBcyBmb3IgZWFjaCBv ZiB0aGUgcGx1cmFsIHBlb3BsZSByZWZlcnJlZCB0byBieSB0aGUgY29uc3RhbnQsICBlYWNoIHNl bnRlbmNlIHN1Y2ggdGhhdCAiQWxpY2UgZ2F0aGVyZWQiLCAiQm9iIGdhdGhlcmVkIiBhbmQgc28g b24gaXMgbm9uc2Vuc2UuCgpXaGVuIGVhY2ggcmVmZXJlbnQgcmVmZXJyZWQgdG8gYnkgYSBjb25z dGFudCBjYW5ub3Qgc2F0aXNmeSBhIHByZWRpY2F0ZSBhbG9uZSwgd2UgZXhwcmVzcyBpdCBhcyAi YW4gYXJndW1lbnQgc2F0aXNmaWVzIGFuIHByZWRpY2F0ZSBfX25vbi1kaXN0cmlidXRpdmVseV9f Ii4KCgoKT24gdGhlIG90aGVyIGhhbmQsIGluIHRoZSBleHByZXNzaW9uICJwZW9wbGUgYXRlIiwg YWx0aG91Z2ggdGhlIGNvbnN0YW50ICJwZW9wbGUiIHJlZmVycyB0byBwbHVyYWwgcGVvcGxlLCB0 aGUgcHJlZGljYXRlICJhdGUiIGlzIHNhdGlzZmllZCBieSBlYWNoIHBlcnNvbi4gVGhhdCBpcyB0 byBzYXksIGVhY2ggc2VudGVuY2Ugc3VjaCB0aGF0ICJBbGljZSBhdGUiLCAiQm9iIGF0ZSIgYW5k IHNvIG9uIGlzIG1lYW5pbmdmdWwuCgpXaGVuIGVhY2ggcmVmZXJlbnQgcmVmZXJyZWQgdG8gYnkg YSBjb25zdGFudCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgYWxvbmUsIHdlIGV4cHJlc3MgaXQgYXMg ImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNhdGUgX19kaXN0cmlidXRpdmVseV9fIiwg b3IgInRoZSBhcmd1bWVudCBoYXMgX19kaXN0cmlidXRpdml0eV9fIi4KCgoKTW9yZW92ZXIsIGlm IHRoZSBwcmVkaWNhdGUgImVhdCIgbWVhbnMgYW4gYWN0ICJwdXQgZm9vZCBpbiBhIG1vdXRoLCBi aXRlIGl0LCBsZXQgaXQgcGFzcyB0aHJvdWdoIGFuIGVzb3BoYWd1cyBhbmQgc2VuZCBpdCB0byBh IHN0b21hY2giLCBpdCBpcyBoYXJkbHkgY29uc2lkZXJlZCB0aGF0ICJwZW9wbGUiIHNhdGlzZmll cyAiZWF0IiBjb2xsZWN0aXZlbHkuIEV2ZW4gaWYgYSBwZXJzb24gaGVscHMgYW5vdGhlciB0byBl YXQsIHRoZSBoZWxwZXIgaXMgbm90IGVhdGVyLCBhbmQgdGhlIGVhdGVyIGlzIG5vdCBjb2xsZWN0 aXZlIHBlb3BsZSBidXQgYW4gaW5kaXZpZHVhbC4gCgpXaGVuIGVhY2ggcmVmZXJlbnQgcmVmZXJy ZWQgdG8gYnkgYSBjb25zdGFudCBjYW5ub3Qgc2F0aXNmeSBhIHByZWRpY2F0ZSBhcyBjb2xsZWN0 aXZlIHBsdXJhbCB0aGluZ3MsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmll cyBhbiBwcmVkaWNhdGUgX19ub24tY29sbGVjdGl2ZWx5X18iLgoKKEhvd2V2ZXIsIGl0IGlzIHBv c3NpYmxlIHRvIGludGVycHJldCB0aGUgcHJlZGljYXRlICJlYXQiIGFzIGludm9sdmluZyBjb2xs ZWN0aXZpdHkuIEZvciBleGFtcGxlLCBpZiBpdCBpcyBpbnRlcnByZXRlZCBhcyAicHV0IGZvb2Qg YXdheSBmcm9tIG91dHNpZGUgdG8gaW5zaWRlIG9mIGJvZHkiLCB3ZSBtYXkgc2F5ICJjb2xsZWN0 aXZlbHkgZWF0IiB0byBleHByZXNzIGFuIGV2ZW50IHRoYXQgcGVvcGxlIGVhdCBhbmQgY29uc3Vt ZSBhIG1hc3Mgb2YgZm9vZCB0b2dldGhlci4pCgoKClRoZXJlIGFyZSBhbHNvIHByZWRpY2F0ZXMg dGhhdCBhbGxvdyBib3RoIHByb3BlcnRpZXMgImNvbGxlY3Rpdml0eSIgYW5kICJkaXN0cmlidXRp dml0eSIuCgoiUGVvcGxlIGNvb2tlZCIgbWF5IG1lYW4gdGhhdCBwbHVyYWwgcGVvcGxlIGtuZWFk IHBhc3RlIG9mIHBpenphIHRvZ2V0aGVyLCBhbmQgdGhhdCBlYWNoIG9mIHRoZW0gaXMgaW4gY2hh cmdlIG9mIGNha2VzIG9yIHBvdC1hdS1mZXUuIEluIHRoaXMgY2FzZSwgdGhlIGNvbnN0YW50ICJw ZW9wbGUiIHJlZmVycyB0byBwbHVyYWwgcGVvcGxlLCBhbmQgdGhleSBjb29rZWQgcGl6emEgY29s bGVjdGl2ZWx5LCBjYWtlcyBhbmQgcG90LWF1LWZldSBkaXN0cmlidXRpdmVseS4gVGhlIGNvbnN0 YW50ICJwZW9wbGUiIHRodXMgc2F0aXNmaWVzIHRoZSBwcmVkaWNhdGUgImNvb2tlZCIgY29sbGVj dGl2ZWx5IGFuZCBkaXN0cmlidXRpdmVseS4KCgoKTm90ZSB0aGF0IHRoZSBjb25zdGFudCAicGVv cGxlIiByZWZlcnMgdG8gd2hhdCBpcyBjb21tb24gdG8gdGhyZWUgcHJlZGljYXRlcyAiZ2F0aGVy ZWQiLCAiY29va2VkIiBhbmQgImF0ZSIuIE5vIG1hdHRlciBpZiBhIGNvbnN0YW50IHNhdGlzZmll cyBwcmVkaWNhdGVzIGNvbGxlY3RpdmVseSBvciBkaXN0cmlidXRpdmVseSwgdGhlIHJlZmVyZW50 IGlzIHRoZSBzYW1lLgoKCgpJZiB3ZSB1c2UgYW4gYXJndW1lbnQgImEgc2V0IG9mIHBlb3BsZSIg aW4gdGhlIGNhc2Ugb2Ygc2F0aXNmeWluZyBhIHByZWRpY2F0ZSBjb2xsZWN0aXZlbHksIGl0IG1p Z2h0IGJlIHBvc3NpYmxlIHRvIGludGVycHJldCB0aGUgcHJlZGljYXRlICJnYXRoZXJlZCIgc28g dGhhdCB0aGUgYXJndW1lbnQgc2F0aXNmaWVzIGl0LCBidXQgdGhlIHNhbWUgYXJndW1lbnQgY2Fu bm90IHNhdGlzZnkgdGhlIHByZWRpY2F0ZSAiYXRlIiwgYmVjYXVzZSB3ZSBjYW4gaGFyZGx5IHNh eSB0aGF0IGEgc2V0IG9mIHBlb3BsZSwgd2hpY2ggaXMgYW4gYWJzdHJhY3QgZW50aXR5LCBwZXJm b3JtcyAiYXRlIi4KCgoKVXNpbmcgcGx1cmFsIGNvbnN0YW50cyBhbmQgcGx1cmFsIHZhcmlhYmxl cyB0aGF0IHdpbGwgYmUgZGlzY3Vzc2VkIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMsIHdlIGNh biBleHByZXNzIHBsdXJhbCB0aGluZ3MgaW4gdGhlIGZvcm0gb2YgcHJlZGljYXRlIGxvZ2ljIHdp dGhvdXQgdXNpbmcgc2V0cy4KCgoKISEhIyBQbHVyYWwgY29uc3RhbnQgYW5kIHBsdXJhbCB2YXJp YWJsZQoKQW4gYXJndW1lbnQgdGhhdCByZWZlcnMgdG8gcmVmZXJlbnQgd2l0aG91dCBpbnRyb2R1 Y2luZyBhIG5vdGlvbiBvZiBzZXRzLCB3aXRob3V0IGRpc3Rpbmd1aXNoaW5nIGNvbGxlY3Rpdml0 eSBhbmQgZGlzdHJpYnV0aXZpdHksIHdpdGhvdXQgZGlzdGluZ3Vpc2hpbmcgcGx1cmFsaXR5IGFu ZCBzaW5ndWxhcml0eSwgaXMgY2FsbGVkIF9fcGx1cmFsIGNvbnN0YW50X18uCgpBIHZhcmlhYmxl IGZvciB3aGljaCBhIHBsdXJhbCBjb25zdGFudCBjYW4gYmUgc3Vic3RpdHV0ZWQgaXMgY2FsbGVk IF9fcGx1cmFsIHZhcmlhYmxlX18uCgpRdWFudGlmeWluZyBhIHBsdXJhbCB2YXJpYWJsZSBpcyBj YWxsZWQgX19wbHVyYWwgcXVhbnRpZmljYXRpb25fXy4gQSBxdWFudGlmaWVyIHVzZWQgZm9yIHBs dXJhbCBxdWFudGlmaWNhdGlvbiBpcyBjYWxsZWQgX19wbHVyYWwgcXVhbnRpZmllcl9fLiBBIHBs dXJhbCB2YXJpYWJsZSBwcmVmaXhlZCB3aXRoIGEgcGx1cmFsIHF1YW50aWZpZXIgaXMgY2FsbGVk IGEgX19ib3VuZCBwbHVyYWwgdmFyaWFibGVfXy4KCgoKISEhISMgbWUgYW5kIGpvJ3UKCldlIGlu dHJvZHVjZSByZWxhdGlvbnMgYmV0d2VlbiBwbHVyYWwgY29uc3RhbnRzIGFuZCBwbHVyYWwgdmFy aWFibGVzOiB7bWV9IGFuZCB7am8ndX0uCgoKCnx8CgpYIG1lIFkgKG1lJ3UpIH5oc358fmhzfiBY IGlzIGFtb25nIFkKCnx8CgpYIGFuZCBZIHJlcHJlc2VudCBoZXJlIHBsdXJhbCBjb25zdGFudHMg b3IgcGx1cmFsIHZhcmlhYmxlcy4gQSBjbHVzdGVyIHttZSBZIChtZSd1KX0gaXMgYSBzZWxicmkg aW4gTG9qYmFuIGdyYW1tYXIuIHttZSd1fSBpcyBhbiBlbGlkYWJsZSB0ZXJtaW5hdG9yIG9mIHN0 cnVjdHVyZSBiZWdpbm5pbmcgd2l0aCB7bWV9LgoKCgp7bWV9IGhhcyB0aGUgZm9sbG93aW5nIHBy b3BlcnRpZXMgd2l0aCBhcmJpdHJhcnkgYXJndW1lbnRzIFgsIFkgYW5kIFo6CgojIFggbWUgWCAo cmVmbGV4aXZpdHkpCgojIFggbWUgWSBpamVibyBZIG1lIFogaW5hamEgWCBtZSBaICh0cmFuc2l0 aXZpdHkpCgojIFggbWUgWSBpamVibyBZIG1lIFggaWpvIFggZHUgWSAoaWRlbnRpdHkpCgpUaGUg cHJvcGVydHkgMyBtZWFucyB0aGF0IHRoZSBpZGVudGl0eSBiZXR3ZWVuIHJlZmVyZW50cyBvZiBY IGFuZCBZIGlzIHJlcHJlc2VudGVkIHdpdGgge21lfSwgYXMgYSByZWxhdGlvbiB0aGF0IHtYIG1l IFkgaWplYm8gWSBtZSBYfS4KCgoKfHwKClggam8ndSBZIH5oc358fmhzfiBYIGFuZCBZCgp8fAoK e2pvJ3V9IGNvbWJpbmVzIHR3byBhcmd1bWVudHMgWCBhbmQgWSBpbnRvIG9uZSBwbHVyYWwgY29u c3RhbnQgb3Igb25lIHBsdXJhbCB2YXJpYWJsZS4KCgoKe2pvJ3V9IGhhcyB0aGUgZm9sbG93aW5n IHByb3BlcnRpZXMgd2l0aCBhcmJpdHJhcnkgYXJndW1lbnRzIFggYW5kIFk6CgojIFggbWUgWCBq byd1IFkKCiMgWCBqbyd1IFkgZHUgWSBqbyd1IFgKCiMgWCBqbyd1IFggZHUgWAoKVGhlIHByb3Bl cnR5IDIgbWVhbnMgdGhhdCB0aGUgcmVmZXJlbnQgb2YgdGhlIHdob2xlIGFyZ3VtZW50IGRvZXMg bm90IHZhcnkgd2hlbiB0d28gYXJndW1lbnRzIGNvbWJpbmVkIGJ5IHtqbyd1fSBhcmUgaW50ZXJj aGFuZ2VkIHdpdGggZWFjaCBvdGhlci4gVGhlIHByb3BlcnR5IDMgbWVhbnMgdGhhdCB7am8ndX0g ZG9lcyBub3QgYWRkIGFueSByZWZlcmVudCB3aGVuIGl0IGNvbWJpbmVzIGFuIGFyZ3VtZW50IHdp dGggaXRzZWxmLgoKCgpVc2luZyB7am8ndX0sIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBpcyBw b3NzaWJsZToKCl4KCjtFeGFtcGxlOiBCIGFuZCBDIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZS4K Cjs6IGJ5IGpvJ3UgY3kgam1hamkgZ2knZSBqdWtwYSBnaSdlIGNpdGthXgoKRWFjaCBvZiB7Ynl9 IGFuZCB7Y3l9IGlzIGEgcGx1cmFsIGNvbnN0YW50LgoKCgpUaGUgcHJlZGljYXRlIHtqdWtwYX0g KGNvb2spIGNhbiBiZSBpbnRlcnByZXRlZCBjb2xsZWN0aXZlbHkgYW5kL29yIGRpc3RyaWJ1dGl2 ZWx5LCBidXQgdGhlIHBsdXJhbCBjb25zdGFudCB7Ynkgam8ndSBjeX0gc2F5cyBub3RoaW5nIGFi b3V0IHdoZXRoZXIgaXQgc2F0aXNmaWVzIHtqdWtwYX0gY29sbGVjdGl2ZWx5IGFuZC9vciBkaXN0 cmlidXRpdmVseS4gSWYgd2Ugd2FudCB0byBtYWtlIGV4cGxpY2l0IHRoYXQgdGhleSBjb29rZWQg ImNvbGxlY3RpdmVseSIsIHdlIHNheSB7Ynkgam9pIGN5fSB1c2luZyB7am9pfSB0aGF0IHdpbGwg YmUgZGlzY3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVuX2pvX3Vfam9pX2NlX2FuZF9nYWRy aXxTZWN0aW9uIDMuNCkpLCBvciB7bHUnbyBieSBqbyd1IGN5fSB1c2luZyB7bHUnb30gdGhhdCB3 aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9h bmRfZ2Fkcml8U2VjdGlvbiAzLjMpKS4gQ29udHJhc3RpdmVseSwgaWYgd2Ugd2FudCB0byBtYWtl IGV4cGxpY2l0IHRoYXQgdGhleSBjb29rZWQgImRpc3RyaWJ1dGl2ZWx5Iiwgd2Ugc2F5ICB7bHUn YSBieSBqbyd1IGN5fSB1c2luZyB7bHUnYX0gdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwj UmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjMpKS4g SG93ZXZlciwgdGhlc2UgYXJndW1lbnRzIHRoYXQgc2F5cyBleHBsaWNpdGx5IGNvbGxlY3Rpdml0 eSBhbmQvb3IgZGlzdHJpYnV0aXZpdHkgYXJlIG5vdCBhbHdheXMgY29tbW9ubHkgdXNlZCBmb3Ig b3RoZXIgcHJlZGljYXRlcyBsaWtlIHtqbWFqaX0gb3Ige2NpdGthfS4KCgoKVGhlIGRpYWdyYW0g YmVsb3cgc2hvd3MgcmVsYXRpb25zIGNvbnN0cnVjdGVkIHdpdGgge21lfSBhbmQge2pvJ3V9IHJl cHJlc2VudGVkIHdpdGggYSBkaXJlY3RlZCBncmFwaCwgaW4gd2hpY2ggdGhlIHZlcnRpY2VzIHJl cHJlc2VudCBwbHVyYWwgY29uc3RhbnRzLgoKCgp7aW1nIGZpbGVJZD0iNyIgdGh1bWI9InkiIHJl bD0iYm94W2ddIn0KCgoKISEhISMgSW5kaXZpZHVhbAoKUmVmZXJlbnQgb2YgYSBwbHVyYWwgY29u c3RhbnQgaXMgbm90IG5lY2Vzc2FyaWx5IHBsdXJhbDogYSBwbHVyYWwgY29uc3RhbnQgY2FuIHJl ZmVyIHRvIG9uZSBpbmRpdmlkdWFsLgoKX19BbiBpbmRpdmlkdWFsX18gaXMgZGVmaW5lZCBhcyBm b2xsb3dzOgoKfHwKCl9fWCBpcyBhbiBpbmRpdmlkdWFsX18gfmhzfnx+aHN+ID1jYSdlIH5oc358 fmhzfiBybydvaSBkYSBwb2kga2UnYSBtZSBYIHpvJ3UgWCBtZSBkYQoKfHwKCgoKd2hlcmUgX19y bydvaV9fIGlzIGFuIGV4cGVyaW1lbnRhbCBjbWF2byBwcm9wb3NlZCBieSAoKHhvcnhlc3xsYSB4 b3J4ZXMpKSwgd2hpY2ggaXMgYSBwbHVyYWwgcXVhbnRpZmllciBtZWFuaW5nICJhbGwiLiAge3Jv J29pIGRhfSBpcyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBtZWFuaW5nICJmb3IgYWxsIHRoYXQg Y2FuIGJlIHN1YnN0aXR1dGVkIGZvciB7ZGF9Ii4gVGhpcyBkZWZpbml0aW9uIG1lYW5zIHRoYXQg WCBpcyBjYWxsZWQgYW4gaW5kaXZpZHVhbCB3aGVuIHRoZSBjb25kaXRpb24gImZvciBhbGwge2Rh fSB0aGF0IGFyZSBhbW9uZyBYLCBYIGlzIGFtb25nIHtkYX0iIGlzIHNhdGlzZmllZC4gSW4gb3Ro ZXIgd29yZHMsICJpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBub3RoaW5nIG90aGVyIHRo YW4ge1h9IGNhbiBiZSBzdWJzdGl0dXRlZCBmb3Ige2RhfSBzdWNoIHRoYXQge1ggbWUgZGF9IiBp cyBleHByZXNzZWQgYnkgIlggaXMgYW4gaW5kaXZpZHVhbCIuCgoKCldoZW4gZWFjaCBvZiBYIGFu ZCBZIGlzIGFuIGluZGl2aWR1YWwgYW5kIFggaXMgbm90IGVxdWFsIHRvIFksIHtYIGpvJ3UgWX0g aXMgY2FsbGVkIF9faW5kaXZpZHVhbHNfXy4gV2hlbiBlYWNoIG9mIFggYW5kIFkgaXMgYW4gaW5k aXZpZHVhbCBvciBpbmRpdmlkdWFscywge1ggam8ndSBZfSBpcyBjYWxsZWQgaW5kaXZpZHVhbHMg YXMgd2VsbC4KCgoKISEhISMgRGlmZmVyZW5jZSBiZXR3ZWVuIHBsdXJhbCBhbmQgc2luZ3VsYXIK CkEgcGx1cmFsIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIGEgc2luZ2xlIGluZGl2aWR1YWwgaXMg Y2FsbGVkIGEgX19zaW5ndWxhciBjb25zdGFudF9fLgoKCgpVbmxlc3MgWD1ZIGFuZCBYIGlzIGFu IGluZGl2aWR1YWwsIG5vIG1hdHRlciB3aGV0aGVyIGVhY2ggb2YgWCBhbmQgWSBpcyBwbHVyYWwg b3Igc2luZ3VsYXIsIHtYIGpvJ3UgWX0gaXMgbm90IGEgc2luZ3VsYXIgY29uc3RhbnQuIEl0IGlz IGJlY2F1c2UgCgpeWCBtZSBYIGpvJ3UgWSBpamVuYWkgWCBqbyd1IFkgbWUgWF4KCmhvbGRzIHRy dWUsIGFuZCB0aGVuIHtYIGpvJ3UgWX0gZG9lcyBub3Qgc2F0aXNmeSB0aGUgY29uZGl0aW9uIG9m IGFuIGluZGl2aWR1YWwge3JvJ29pIGRhIHBvaSBrZSdhIG1lIFggam8ndSBZIHpvJ3UgWCBqbyd1 IFkgbWUgZGF9LgoKCgohISEhIyBCb3VuZCBzaW5ndWxhciB2YXJpYWJsZQoKV2hlbiB0aGUgZG9t YWluIG9mIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIGlzIHJlc3RyaWN0ZWQgdG8gd2hhdCBpcyBh biBpbmRpdmlkdWFsLCB0aGUgdmFyaWFibGUgaXMgY2FsbGVkIF9fYm91bmQgc2luZ3VsYXIgdmFy aWFibGVfXy4gQSBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSBjYW5ub3QgdGFrZSBtb3JlIHRoYW4g b25lIGluZGl2aWR1YWwgdmFsdWUgYXQgYSB0aW1lLgoKe3JvIGRhfSAoZm9yIGFsbCB7ZGF9KSBh bmQge3N1J28gZGF9ICh0aGVyZSBpcyBhdCBsZWFzdCBvbmUge2RhfSksIHdoaWNoIGFyZSBvZmZp Y2lhbGx5IGRlZmluZWQgaW4gTG9qYmFuLCBhcmUgYm91bmQgc2luZ3VsYXIgdmFyaWFibGVzLiBU aGV5IGNhbiBiZSBkZWZpbmVkIHdpdGggYm91bmQgcGx1cmFsIHZhcmlhYmxlcyBhcyBmb2xsb3dz OgoKfHwKCnJvIGRhIH5oc358fmhzfiBybydvaSBkYSBwb2kgcm8nb2kgZGUgcG9pIGRlIG1lIGRh IHpvJ3UgZGEgbWUgZGUKCnN1J28gZGEgfmhzfnx+aHN+IHN1J29pIGRhIHBvaSBybydvaSBkZSBw b2kgZGUgbWUgZGEgem8ndSBkYSBtZSBkZQoKfHwKCl9fc3Unb2lfXyBpcyBhbiBleHBlcmltZW50 YWwgY21hdm8gcHJvcG9zZWQgYnkgKCh4b3J4ZXN8bGEgeG9yeGVzKSksIGFuZCBpcyBhIHBsdXJh bCBxdWFudGlmaWVyIG1lYW5pbmcgInRoZXJlIGlzL2FyZSIuIE5vdGUgdGhhdCB7c3Unb2l9IGlz IF9fbm90X18gImF0IGxlYXN0IG9uZSIuIHtzdSdvaSBkYX0gaXMgYSBib3VuZCBwbHVyYWwgdmFy aWFibGUgbWVhbmluZyAidGhlcmUgaXMvYXJlIHtkYX0iLgoKCgohISEhIyBXaGF0IGlzIG5laXRo ZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMKClJlZmVyZW50IG9mIGEgcGx1cmFsIGNv bnN0YW50IGlzIG5vdCBuZWNlc3NhcmlseSBhbiBpbmRpdmlkdWFsIG9yIGluZGl2aWR1YWxzLiAK Ckl0IGlzIHBvc3NpYmxlIHRvIGRpc2N1c3MgYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugc3VjaCB0 aGF0IHJlZmVyZW50IG9mIGEgcGx1cmFsIGNvbnN0YW50IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVh bCBub3IgaW5kaXZpZHVhbHMuCgoKCkZvciBleGFtcGxlLCBjb25zaWRlciBzdWNoIGEgdW5pdmVy c2Ugb2YgZGlzY291cnNlIGluIHdoaWNoIHRoZSBmb2xsb3dpbmcgcHJvcG9zaXRpb24gaG9sZHMg dHJ1ZS4KCl5ybydvaSBkYSBwb2kga2UnYSBtZSBrbydhIGt1J28gc3Unb2kgZGUgem8ndSBkZSBt ZSBkYSBpamVuYWkgZGEgbWUgZGUgfi0tfiBDb25kaXRpb25fMV4KCkluIG90aGVyIHdvcmRzLCBp biB0aGlzIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgZm9yIGFsbCBYIHN1Y2ggdGhhdCB7WCBtZSBr bydhfSwgdGhlcmUgaXMgYWx3YXlzIFkgc3VjaCB0aGF0IHtZIG1lIFh9IGFuZCBub3Qge1ggbWUg WX0uCgoKCjtUaGVvcmVtOiBJbiBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSB3aGVyZSBDb25kaXRp b25fMSBpcyB0cnVlLCB7a28nYX0gaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlk dWFscy4KCgoKO1Byb29mOiBTdXBwb3NlIHtrbydhfSBpcyBhbiBpbmRpdmlkdWFsLiBGcm9tIHRo ZSBkZWZpbml0aW9uIG9mICJhbiBpbmRpdmlkdWFsIjoKCl5ybydvaSBkYSBwb2kga2UnYSBtZSBr bydhIHpvJ3Uga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzJeCgpSZXBsYWNlIHtybydvaSBk YX0gd2l0aCB7bmFrdSBzdSdvaSBkYSBuYWt1fToKCl5uYWt1IHN1J29pIGRhIHBvaSBrZSdhIG1l IGtvJ2Ega3UnbyBuYWt1IHpvJ3Uga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzItMV4KCk1v dmUgdGhlIGlubmVyLW1vc3Qge25ha3V9IGludG8gdGhlIHByb3Bvc2l0aW9uOgoKXm5ha3Ugc3Un b2kgZGEgcG9pIGtlJ2EgbWUga28nYSB6byd1IG5ha3Uga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0 aW9uXzItMl4KClJlcGxhY2Uge3N1J29pIGRhIHBvaX0gd2l0aCB7aWplfSBhbmQgbW92ZSBpbnRv IHRoZSBwcm9wb3NpdGlvbjoKCl5uYWt1IHN1J29pIGRhIHpvJ3UgZGEgbWUga28nYSBpamUgbmFr dSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0zXgoKUmVwbGFjZSB7aWplIG5ha3V9IHdp dGgge2lqZW5haX06CgpebmFrdSBzdSdvaSBkYSB6byd1IGRhIG1lIGtvJ2EgaWplbmFpIGtvJ2Eg bWUgZGEgfi0tfiBTdXBwb3NpdGlvbl8yLTReCgpCeSB0aGUgd2F5LCBmcm9tIGEgcHJvcGVydHkg b2Yge21lfSwKCl5rbydhIG1lIGtvJ2EgXgoKaXMgYWx3YXlzIHRydWUuIHtrbydhfSBpcyB0aGVy ZWZvcmUgaW4gdGhlIGRvbWFpbiBvZiB7ZGF9IG9mIENvbmRpdGlvbl8xLiBSZXBsYWNlIHtybydv aSBkYX0gb2YgQ29uZGl0aW9uXzEgd2l0aCB7a28nYX0sIGFuZCBpdCB0aHVzIGhvbGRzIHRydWU6 Cgpec3Unb2kgZGUgem8ndSBkZSBtZSBrbydhIGlqZW5haSBrbydhIG1lIGRlIH4tLX4gQ29uZGl0 aW9uXzEtMV4KCkNvbmRpdGlvbl8xLTEgYW5kIFN1cHBvc2l0aW9uXzItNCBjb250cmFkaWN0IGVh Y2ggb3RoZXIuCgpTdXBwb3NpdGlvbl8yIGlzIHRodXMgcmVqZWN0ZWQgYnkgcmVkdWN0aW8gYWQg YWJzdXJkdW0uCgpJdCBtZWFucyB0aGF0IHtrbydhfSBpcyBub3QgYW4gaW5kaXZpZHVhbC4KCgoK TW9yZW92ZXIsIHdoZW4ge2tvJ2F9IGlzIGV4cGFuZGVkIHRvIHtBIGpvJ3UgQn0sIGZyb20gYSBw cm9wZXJ0eSBvZiB7am8ndX0sIHRoZSBmb2xsb3dpbmcgcHJvcG9zaXRpb25zIGhvbGQgdHJ1ZToK Cl5BIG1lIGtvJ2F+cHB+Cgp+L3BwfkIgbWUga28nYV4KCkVhY2ggb2YgQSBhbmQgQiBpcyBpbiB0 aGUgZG9tYWluIG9mIHtkYX0gb2YgQ29uZGl0aW9uXzEuIENvbnNpZGVyaW5nIHNpbWlsYXJseSB0 byBDb25kaXRpb25fMS0xLCBuZWl0aGVyIEEgbm9yIEIgaXMgYW4gaW5kaXZpZHVhbC4ge2tvJ2F9 IGlzIHRodXMgbm90IGluZGl2aWR1YWxzLgoKUS5FLkQuCgoKCldoZW4ge2tvJ2F9IGlzIG5laXRo ZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMsIHdoYXQgYWN0dWFsbHkgZG9lcyBpdCBy ZWZlciB0bz8KCldlIG1heSBpbnRlcnByZXQgdGhhdCBpdCByZWZlcnMgdG8gd2hhdCBpcyByZWZl cnJlZCB0byBieSBhIG1hdGVyaWFsIG5vdW4sIGZvciBleGFtcGxlLgoKQnkgYSBzcGVha2VyIHdo byB0aGlua3MgdGhhdCBhIGN1dC1vZmYgcGllY2Ugb2YgYnJlYWQgaXMgYWxzbyBicmVhZCwgYnJl YWQgaXMgcmVnYXJkZWQgYXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4K CgoKW2h0dHA6Ly9ndXNrYW50LmdpdGh1Yi5pby9sb2piby9qZXRudWphcmNvLmh0bWx8KEkgd3Jv dGUgdGhlIHNhbWUgcHJvb2Ygb25seSBpbiBMb2piYW4uKV0KCgoKISEhISMgQSBsb2dpY2FsIGF4 aW9tIG9uIHBsdXJhbCBjb25zdGFudAoKVGhlIGZvbGxvd2luZyBsb2dpY2FsIGF4aW9tIGlzIGdp dmVuIHRvIGFuIGFyYml0cmFyeSBwbHVyYWwgY29uc3RhbnQgQzoKCl5nYW5haSBDIGJyb2RhIGdp IHN1J29pIGRhIHpvJ3UgZGEgYnJvZGFeCgoKCkl0IG1lYW5zICJpbiBhIHVuaXZlcnNlIG9mIGRp c2NvdXJzZSwgaWYgYSBwcm9wb3NpdGlvbiBpbiB3aGljaCBhIHBsdXJhbCBjb25zdGFudCBpcyB4 MSBvZiB7YnJvZGF9IGhvbGRzIHRydWUsIHRoZXJlIGlzIHJlZmVyZW50IHRoYXQgaXMgeDEgb2Yg e2Jyb2RhfSIuCgoKClRoYXQgaXMgdG8gc2F5LCBhbiBhcmd1bWVudCB0aGF0IGhhcyBubyByZWZl cmVudCBpbiBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgYnkg YSBwbHVyYWwgY29uc3RhbnQuIEFuIGFyZ3VtZW50IHRoYXQgaGFzIG5vIHJlZmVyZW50IGlzIGV4 cHJlc3NlZCBpbiB0aGUgZm9ybSB7bmFrdSBzdSdvaSBkYX0sIHdoaWNoIGlzIGEgbmVnYXRpb24g b2YgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUge3N1J29pIGRhfSBtZWFuaW5nICJ0aGVyZSBpcy9h cmUiLgoKCgohISMgRGVmaW5pdGlvbiBvZiBnYWRyaQoKO19fbG9fXyAoTEUpOiBJdCBpcyBwcmVm aXhlZCB0byBzZWxicmksIGFuZCBmb3JtcyBhIHBsdXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0 byB3aGF0IHNhdGlzZmllcyB4MSwgdGhlIGZpcnN0IHBsYWNlIG9mIHRoZSBzZWxicmkuIElmIGEg cXVhbnRpZmllciBmb2xsb3dzIHtsb30sIHRoZSBxdWFudGlmaWVyIHJlcHJlc2VudHMgdGhlIGNv dW50IG9mIGFsbCB0aGUgcmVmZXJlbnRzIG9mIHRoZSBwbHVyYWwgY29uc3RhbnQuIEluIHRoZSBj YXNlIHRoYXQgYSBxdWFudGlmaWVyIGZvbGxvd3Mge2xvfSwgYSBzdW10aSBtYXkgZm9sbG93IGl0 LiBJbiB0aGlzIGNhc2UsIGl0IGZvcm1zIGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRv IHdoYXQgaXMvYXJlIGFtb25nICcnc3VtdGknJy4KCnx8CgpsbyBbW1BBXSBicm9kYSAoa3UpIH5o c358fmhzfiB6bydlIG5vaSBrZSdhIGJyb2RhIFtbZ2knZSB6aWxrYW5jdSBsaSBQQSBsbyBicm9k YV0gKGt1J28pIH5oc358fmhzfiB3aGF0IGlzL2FyZSBicm9kYSBbW3RoYXQgaXMvYXJlIFBBIGlu IHRvdGFsXQoKbG8gUEEgJydzdW10aScnIChrdSkgfmhzfnx+aHN+IGxvIFBBIG1lICcnc3VtdGkn JyAobWUndSkgKGt1KSB+aHN+fH5oc34gd2hhdCBpcy9hcmUgYW1vbmcgJydzdW10aScnLCBhbmQg UEEgaW4gdG90YWwKCnx8Cgp7a3V9LCB7a3Unb30sIHttZSd1fSBhcmUgZWxpZGFibGUgdGVybWlu YXRvcnMuCgoKClB1dHRpbmcgYSBxdWFudGlmaWVyIGFmdGVyIGdhZHJpIGxpa2Uge2xvIFBBfSBp cyBjYWxsZWQgX19pbm5lciBxdWFudGlmaWNhdGlvbl9fLCBhbmQgdGhlIHF1YW50aWZpZXIgaXMg Y2FsbGVkIF9faW5uZXIgcXVhbnRpZmllcl9fLiBBbHRob3VnaCB0aGUgdGVybSAicXVhbnRpZnki IGlzIGludm9sdmVkLCBpdCBpcyBkaWZmZXJlbnQgZnJvbSBxdWFudGlmaWNhdGlvbiBvZiBsb2dp Yy4gSW5uZXIgcXVhbnRpZmljYXRpb24gZG9lcyBub3QgaW52b2x2ZSBjb3VudGluZyByZWZlcmVu dHMgb2YgY29uc3RhbnRzIHRoYXQgY2FuIGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlhYmxlLCBi dXQgY291bnRpbmcgYWxsIHRoZSByZWZlcmVudHMgb2Ygb25lIHBsdXJhbCBjb25zdGFudC4gSW5u ZXIgcXVhbnRpZmljYXRpb24gd2lsbCBiZSBkaXNjdXNzZWQgbW9yZSBwcmVjaXNlbHkgaW4gKCh8 I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSkuCgoKCk9uIHRoZSBvdGhlciBoYW5k LCBwdXR0aW5nIGEgcXVhbnRpZmllciBiZWZvcmUgZ2FkcmksIG9yIGJlZm9yZSBhIHN1bXRpIG1v cmUgZ2VuZXJhbGx5LCBpcyBjYWxsZWQgX19vdXRlciBxdWFudGlmaWNhdGlvbl9fLCBhbmQgdGhl IHF1YW50aWZpZXIgaXMgY2FsbGVkIF9fb3V0ZXIgcXVhbnRpZmllcl9fLiBPdXRlciBxdWFudGlm aWNhdGlvbiB3aWxsIGJlIGRpc2N1c3NlZCBtb3JlIHByZWNpc2VseSBpbiAoKHwjT3V0ZXJfcXVh bnRpZmljYXRpb258U2VjdGlvbiAzLjIpKS4KCgoKQWxsIHN1bXRpIGZvcm1lZCB3aXRoIGdhZHJp IGFyZSBkZWZpbmVkIHNvIHRoYXQgdGhleSBhcmUgZXhwYW5kZWQgaW50byBleHByZXNzaW9ucyB3 aXRoIHt6bydlfS4gVGhhdCBpcyB0byBzYXksIHRoZSBtb3N0IGdlbmVyYWwgcGx1cmFsIGNvbnN0 YW50IGlzIHJlcHJlc2VudGVkIGJ5IGEgc2luZ2xlIHt6bydlfS4gQSBzdW10aSBmb3JtZWQgd2l0 aCBnYWRyaSBpcyB7em8nZX0gYWNjb21wYW5pZWQgYnkgYW4gZXhwbGFuYXRpb24uCgpeCgo7RXhh bXBsZTogUGVvcGxlIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZS4KCjs6IGxvIHByZW51IGN1IGpt YWppIGdpJ2UganVrcGEgZ2knZSBjaXRrYV4KCgoKV2hpbGUgdGhlIHByZWRpY2F0ZSB7anVrcGF9 IChjb29rKSBjYW4gYmUgaW50ZXJwcmV0ZWQgY29sbGVjdGl2ZWx5IGFzIHdlbGwgYXMgZGlzdHJp YnV0aXZlbHksIHRoZSBwbHVyYWwgY29uc3RhbnQge2xvIHByZW51fSAocGVvcGxlKSBkb2VzIG5v dCBzYXkgZXhwbGljaXRseSBpZiBpdCBzYXRpc2ZpZXMge2p1a3BhfSBjb2xsZWN0aXZlbHkgb3Ig ZGlzdHJpYnV0aXZlbHkuIElmIHdlIHdhbnQgdG8gc2F5IGV4cGxpY2l0bHkgdGhhdCB0aGV5ICJj b2xsZWN0aXZlbHkiIGNvb2tlZCwgd2UgdXNlIHtsb2l9LCB3aGljaCB3aWxsIGJlIGRpc2N1c3Nl ZCBsYXRlciwgYW5kIHNheSB7bG9pIHByZW51fS4gQ29udHJhc3RpdmVseSwgaWYgd2Ugd2FudCB0 byBzYXkgZXhwbGljaXRseSB0aGF0IHRoZXkgImRpc3RyaWJ1dGl2ZWx5IiBjb29rZWQsIHdlIHNh eSB7cm8gbG8gcHJlbnV9IHdpdGggYW4gb3V0ZXIgcXVhbnRpZmljYXRpb24sIG9yIHtsdSdhIGxv IHByZW51fS4gSG93ZXZlciwgYSBzdW10aSB0aGF0IHNheXMgZXhwbGljaXRseSBjb2xsZWN0aXZp dHkgb3IgZGlzdHJpYnV0aXZpdHkgaXMgbm90IG5lY2Vzc2FyaWx5IGFibGUgdG8gYmUgc2hhcmVk IHdpdGggb3RoZXIgcHJlZGljYXRlIGxpa2Uge2ptYWppfSBvciB7Y2l0a2F9LgoKCgo7X19sZV9f IChMRSk6IHtsZSBicm9kYX0gcmVmZXJzIF9fc3BlY2lmaWNhbGx5X18gdG8gYSByZWZlcmVudCBv ZiB7bG8gYnJvZGF9LCBhbmQgX19leHBsaWNpdGx5IGV4cHJlc3MgdGhhdCB0aGUgc3BlYWtlciBo YXMgdGhlIHJlZmVyZW50IGluIG1pbmRfXy4gSXRzIGxvZ2ljYWwgcHJvcGVydHkgaXMgdGhlIHNh bWUgYXMgdGhhdCBvZiB7bG99LgoKfHwKCmxlIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+aHN+IHpv J2Ugbm9pIG1pIGtlJ2EgZG8gc2tpY3UgbG8ga2EgY2UndSBicm9kYSBbW2dpJ2Ugemlsa2FuY3Ug bGkgUEEgbG8gYnJvZGFdIChrdSdvKSAKCmxlIFBBICcnc3VtdGknJyAoa3UpIH5oc358fmhzfiBs ZSBQQSBtZSAnJ3N1bXRpJycgKG1lJ3UpIChrdSkKCnx8CgoKCjtfX2xhX18gKExBKTogSXQgaXMg cHJlZml4ZWQgdG8gc2VsYnJpIG9yIGNtZXZsYSwgYW5kIGZvcm1zIGEgcGx1cmFsIGNvbnN0YW50 IHRoYXQgcmVmZXJzIHRvIHdoYXQgaXMgbmFtZWQgdGhlIHNlbGJyaSBvciBjbWV2bGEgc3RyaW5n LiBJdHMgbG9naWNhbCBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHtsb30uCgp8fAoK bGEgW1tQQV0gYnJvZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kgbHUgW1tQQV0gYnJvZGEgbGkn dSBjbWVuZSBrZSdhIG1pIChrdSdvKSAKCmxhIFBBICcnc3VtdGknJyAoa3UpIH5oc358fmhzfiB6 bydlIG5vaSBsdSBQQSBzdW10aSBsaSd1IGNtZW5lIGtlJ2EgbWkgKGt1J28pIAoKfHwKCgoKO19f bG9pX18gKExFKSwgX19sZWlfXyAoTEUpLCBfX2xhaV9fIChMQSk6IHtsb2kvbGVpL2xhaSBicm9k YX0gcmVmZXJzIHRvIGEgcmVmZXJlbnQgb2Yge2xvL2xlL2xhIGJyb2RhfSwgYW5kIF9fZXhwbGlj aXRseSBleHByZXNzIHRoYXQgdGhlIHJlZmVyZW50IHNhdGlzZmllcyBhIHByZWRpY2F0ZSBjb2xs ZWN0aXZlbHlfXy4KCnx8Cgpsb2kgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxv IFtbUEFdIGJyb2RhCgpsZWkgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxlIFtb UEFdIGJyb2RhCgpsYWkgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxhIFtbUEFd IGJyb2RhCgpsb2kgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBndW5tYSBiZSBsbyBQQSAnJ3N1 bXRpJycKCmxlaSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxlIFBBICcnc3Vt dGknJwoKbGFpIFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGEgUEEgJydzdW10 aScnCgp8fAoKQmVjYXVzZSB7bG9pL2xlaS9sYWl9IGlzIHRodXMgZGVmaW5lZCBieSBhbm90aGVy IHBsdXJhbCBjb25zdGFudCB7bG8gZ3VubWEgYmUgbG8vbGUvbGF9LCBpdCBkb2VzIG5vdCByZWZl ciBkaXJlY3RseSB0byByZWZlcmVudCBvZiB7bG8gYnJvZGF9IG9yIHtsbyBQQSAnJ3N1bXRpJyd9 LCBidXQgcmVmZXJlbnQgb2Yge2xvIGd1bm1hfS4gVGhlcmVmb3JlLCBldmVuIGlmIHtsbyBicm9k YX0gb3Ige2xvIFBBICcnc3VtdGknJ30gaXMgbm90IGFuIGluZGl2aWR1YWwsIHtsb2kgYnJvZGF9 IG9yIHtsb2kgUEEgJydzdW10aScnfSBjYW4gYmUgYW4gaW5kaXZpZHVhbCB7bG8gZ3VubWF9IHVu ZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uOgoKXnJvJ29pIGRhIHBvaSBrZSdhIG1lIGxvIGd1 bm1hIGJlIGxvL2xlL2xhIFtbUEFdIGJyb2RhIHpvJ3UgbG8gZ3VubWEgYmUgbG8vbGUvbGEgW1tQ QV0gYnJvZGEgY3UgbWUgZGF+cHB+Cgp+L3BwfnJvJ29pIGRhIHBvaSBrZSdhIG1lIGxvIGd1bm1h IGJlIGxvL2xlL2xhIFBBICcnc3VtdGknJyB6byd1IGxvIGd1bm1hIGJlIGxvL2xlL2xhIFBBICcn c3VtdGknJyBjdSBtZSBkYV4KCgoKO19fbG8naV9fIChMRSksIF9fbGUnaV9fIChMRSksIF9fbGEn aV9fIChMQSk6IHtsbydpL2xlJ2kvbGEnaSBicm9kYX0gcmVmZXJzIHRvIGEgc2V0IG9yIHNldHMg b2YgaW5kaXZpZHVhbChzKSB0aGF0IGNvbnN0aXR1dGUocykgYSBwbHVyYWwgY29uc3RhbnQge2xv L2xlL2xhIGJyb2RhfS4gQmVjYXVzZSB7bG8naS9sZSdpL2xhJ2l9IGZvcm1zIGEgc2V0IG9yIHNl dHMsIGl0IGlzIGRlZmluZWQgb25seSB3aGVuIGl0cy90aGVpciBtZW1iZXIocykge2xvL2xlL2xh IGJyb2RhfSBpcy9hcmUgYW4gaW5kaXZpZHVhbCBvciBpbmRpdmlkdWFscy4gQSBzZXQgaXRzZWxm IGlzIGFsd2F5cyBhbiBpbmRpdmlkdWFsLCBhbmQgc2V0cyBhcmUgYWx3YXlzIGluZGl2aWR1YWxz OiB0aGVyZSBpcyBubyBzZXQgdGhhdCBpcyBub3QgYW4gaW5kaXZpZHVhbC4KCnx8CgpsbydpIFtb UEFdIGJyb2RhIH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbG8gW1tQQV0gYnJvZGEKCmxlJ2kgW1tQ QV0gYnJvZGEgfmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsZSBbW1BBXSBicm9kYQoKbGEnaSBbW1BB XSBicm9kYSB+aHN+fH5oc34gbG8gc2VsY21pIGJlIGxhIFtbUEFdIGJyb2RhCgpsbydpIFBBICcn c3VtdGknJyB+aHN+fH5oc34gbG8gc2VsY21pIGJlIGxvIFBBICcnc3VtdGknJwoKbGUnaSBQQSAn J3N1bXRpJycgfmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsZSBQQSAnJ3N1bXRpJycKCmxhJ2kgUEEg JydzdW10aScnIH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbGEgUEEgJydzdW10aScnCgp8fAoKQmVj YXVzZSB7bG8naS9sZSdpL2xhJ2l9IGlzIGRlZmluZWQgYnkgYW5vdGhlciBwbHVyYWwgY29uc3Rh bnQge2xvIHNlbGNtaSBiZSBsby9sZS9sYX0sIGl0IGRvZXMgbm90IHJlZmVyIGRpcmVjdGx5IHRv IHJlZmVyZW50IG9mIHtsbyBicm9kYX0gb3Ige2xvIFBBICcnc3VtdGknJ30sIGJ1dCByZWZlcmVu dCBvZiB7bG8gc2VsY21pfS4KCgoKSW4gc2V0IHRoZW9yeSwgYW4gZW1wdHkgc2V0IGlzIGRlZmlu ZWQgYXMge2xvIHNlbGNtaSBiZSBubyBkYX0sIGFuZCBhbiBleHByZXNzaW9uIHtsbyBubyBicm9k YX0gaXMgb2ZmaWNpYWxseSBtZWFuaW5nbGVzcyAoc2VlICgofCNJbm5lcl9xdWFudGlmaWNhdGlv bnxTZWN0aW9uIDMuMSkpLiBUaGlzIGltcGxpZXMgdGhhdCBhbiBlbXB0eSBzZXQgY2Fubm90IGJl IGV4cHJlc3NlZCB3aXRoIHtsbydpL2xlJ2kvbGEnaX0uIAoKCgpBY2NvcmRpbmcgdG8gW2h0dHA6 Ly9qYm92bGFzdGUubG9qYmFuLm9yZy9kaWN0L3NlbGNtaXxqYm92bGFzdGVdLCB7c2VsY21pfSBp cyBkZWZpbmVkIGFzIGZvbGxvd3M6fHwKCngxIHNlbGNtaSB4MiB+aHN+fH5oc34gPWNhJ2Ugfmhz fnx+aHN+IHgxIHNlIGNtaW1hIHJvIGxvIG1lIHgyIG1lJ3UgZSBubyBsbyBuYSBtZSB4MiB8fAoK SWYgd2UgYWNjZXB0IHRoaXMgZGVmaW5pdGlvbiwgYSBzZXQgcmVmZXJyZWQgdG8gYnkge2xvJ2kv bGUnaS9sYSdpfS1zdW10aSBjb25zaXN0cyBvZiBvbmx5IHRoZSByZWZlcmVudCBvZiB7bG8vbGUv bGEgW1tQQV0gYnJvZGF9IG9yIHtsby9sZS9sYSBQQSAnJ3N1bXRpJyd9LiBDb250cmFzdGl2ZWx5 LCBpZiB3ZSBkZWZpbmUgaXQgYXMge3NlbGNtaX09e3NlIGNtaW1hfSwgdGhlIHNldCBtYXkgaW5j bHVkZSB3aGF0IGlzL2FyZSBvdGhlciB0aGFuIHRoZSByZWZlcmVudCBvZiB7bG8vbGUvbGEgW1tQ QV0gYnJvZGF9IG9yIHtsby9sZS9sYSBQQSAnJ3N1bXRpJyd9LiBJdCBpcyBub3QgeWV0IG9mZmlj aWFsbHkgZGV0ZXJtaW5lZCB3aGljaCBpbnRlcnByZXRhdGlvbiBpcyB0byBiZSBhY2NlcHRlZC4K CgoKISEhIyBJbm5lciBxdWFudGlmaWNhdGlvbgoKKChCUEZLIFNlY3Rpb246IGdhZHJpfEJQRksg ZGVmaW5lcyBpbm5lciBxdWFudGlmaWNhdGlvbikpIGFzIGZvbGxvd3M6Cgp8fAoKbG8gW1tQQV0g YnJvZGEgfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgYnJvZGEgW1tnaSdlIHppbGthbmN1IGxpIFBB IGxvIGJyb2RhXQoKbG8gUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBQQSBtZSAnJ3N1bXRpJycK Cnx8CgpUaGF0IGlzIHRvIHNheSwgaW5uZXIgcXVhbnRpZmllciBtZWFucyBudW1iZXIgb2YgcmVm ZXJlbnQgY291bnRlZCBieSB1bml0IHtsbyBicm9kYX0gb3Ige2xvIG1lICcnc3VtdGknJ30gdGhh dCBpcyB4MyBvZiB7emlsa2FuY3V9LiAKCkhvd2V2ZXIsIGluc3RlYWQgb2Yge3ppbGthbmN1fSwg dGhlIG1lYW5pbmcgb2Ygd2hpY2ggaXMgdG9vIHZhZ3VlIGZvciBkZWZpbml0aW9uLCBbaHR0cHM6 Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21zZy9sb2piYW4vUkF0RTdZay1kcXcveGkyaDZBMTdDdXNK fGFuIGlkZWEgb2YgcmVkZWZpbml0aW9uIHVzaW5nIHttZWl9IHdhcyBzdWdnZXN0ZWRdIGFzIGZv bGxvd3M6CgoKCjtBeGlvbSAxOiBybydvaSBkYSBzdSdvIHBhIG1laQoKO0RlZmluaXRpb246fHwK CihEMSkga28nYSBzdSdvIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gc3Unb2kgZGEg cG9pIG1lIGtvJ2Ega3UnbyBzdSdvaSBkZSBwb2kgbWUga28nYSB6byd1IGdlIGRhIHN1J28gTi0x IG1laSBnaW5haSBkZSBtZSBkYQoKKEQyKSBrbydhIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+ fH5oc34ga28nYSBzdSdvIE4gbWVpIGdpJ2UgbmFpIHN1J28gTisxIG1laSAKCihEMykgbG8gUEEg YnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiB6bydlIG5vaSBrZSdhIFBBIG1laSBnaSdl IGJyb2RhCgp8fAoKCgpVc2luZyB0aGVzZSBkZWZpbml0aW9ucyBhbmQgQXhpb20gMSwgdGhlIGZv bGxvd2luZyB0aGVvcmVtIHdpbGwgYmUgcHJvdmVkLgoKXklmIGFuZCBvbmx5IGlmIHtrbydhIHBh IG1laX0sIHtrbydhfSBpcyBhbiBpbmRpdmlkdWFsLl4KCgoKO1Byb29mOiAoRDIpIGlzCgp8fAoK a28nYSBOIG1laQl8PXwga28nYSBzdSdvIE4gbWVpIGdpJ2UgbmFpIHN1J28gTisxIG1laSAKCgkJ fD18IGdlIGtvJ2Egc3UnbyBOIG1laSAtLS0tLShTMSkKCgkJfCB8IGdpIG5ha3Uga28nYSBzdSdv IE4rMSBtZWkgLS0tLS0oUzIpCgp8fAoKQXBwbHlpbmcgKEQxKSB0byAoUzIpLCAKCnx8CgooUzIp CQl8PXwgbmFrdSBzdSdvaSBkYSBwb2kgbWUga28nYSBrdSdvIHN1J29pIGRlIHBvaSBtZSBrbydh IHpvJ3UgCgoJCXwgfCBnZSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2luYWkgZGUgbWUgZGEKCgkJ fD18IHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndQoK CQl8IHwgbmFrdSBnZSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2kgbmFrdSBkZSBtZSBkYQoKCQl8 PXwgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBwb2kgbWUga28nYSB6byd1CgoJ CXwgfCBnYW5haSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2kgZGUgbWUgZGEKCnx8CgooRDIpIGlz IHRoZXJlZm9yZQoKfHwKCmtvJ2EgTiBtZWkJfD18IGdlIChTMSkgZ2kgKFMyKSAKCgkJfD18IGdl IGtvJ2Egc3UnbyBOIG1laQoKCQl8IHwgZ2kgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydv aSBkZSBwb2kgbWUga28nYSB6byd1CgoJCXwgfCBnYW5haSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwg Z2kgZGUgbWUgZGEKCnx8CgpXaGVuIE49MSwKCnx8CgprbydhIHBhIG1laQl8PXwgZ2Uga28nYSBz dSdvIHBhIG1laQoKCQl8IHwgZ2kgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBw b2kgbWUga28nYSB6byd1CgoJCXwgfCBnYW5haSBkYSBzdSdvIHBhIG1laSAKCgkJfCB8IGdpIGRl IG1lIGRhIAoKfHwKCkJlY2F1c2Ugb2YgQXhpb20gMSwgaXQgaW1wbGllcwoKfHwKCmtvJ2EgcGEg bWVpCXw9fCBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBrbydhIHpv J3UgZGUgbWUgZGEKCnx8CgpUaGUgcmlnaHQgc2lkZSBpbXBsaWVzIHtybydvaSBkYSBwb2kga2Un YSBtZSBrbydhIHpvJ3Uga28nYSBtZSBkYX0sIHdoaWNoIGlzIHRoZSBjb25kaXRpb24gZm9yICJ7 a28nYX0gaXMgYW4gaW5kaXZpZHVhbCIuIEl0cyBjb252ZXJzZSBpcyBhbHNvIHRydWUuCgpRLkUu RC4KCgoKVGhlIGRpYWdyYW0gYmVsb3cgc2hvd3MgYSBwcm9jZWR1cmUgb2YgY291bnRpbmcgc29t ZXRoaW5nIHVwIHRvIGZvdXIgcmVwcmVzZW50ZWQgd2l0aCBhIGRpcmVjdGVkIGdyYXBoLiBJbiB0 aGlzIGRpYWdyYW0sIGxvb3BzIHN1Y2ggYXMge1ggbWUgWH0gYXJlIG9taXR0ZWQgZm9yIHNpbXBs aWNpdHksIHRob3VnaCB0aGV5IGV4aXN0LiBDb3VudGluZyB1cCBjb3JyZXNwb25kcyB0byBzZWxl Y3RpbmcgYSBzdWJncmFwaCBvZiBhIGRpcmVjdGVkIGdyYXBoIGZvcm1lZCB3aXRoIHttZX06IHRo ZSBzdWJncmFwaCB0aGF0IGhhcyBhIGZvcm0gb2YgdHJlZSB0aGF0IGluY2x1ZGVzIGFsbCBsZWF2 ZXMgKGNvbnN0YW50cyBlYWNoIG9mIHdoaWNoIGlzIGFuIGluZGl2aWR1YWwpIHRvIGJlIGNvdW50 ZWQsIGZvciBleGFtcGxlIHRoZSBwYXJ0IG9mIG1hZ2VudGEgY29sb3IgaW4gdGhlIGRpYWdyYW0u CgoKCntpbWcgZmlsZUlkPSIxMCIgdGh1bWI9InkiIHJlbD0iYm94W2ddIn0KCgoKISEhISMgUmVw ZWF0aW5nIGlubmVyIHF1YW50aWZpY2F0aW9uCgpCZWNhdXNlIHtsbyBQQSAnJ3N1bXRpJyd9IGlz IGRlZmluZWQsIHdlIGNhbiByZXBlYXQgaW5uZXIgcXVhbnRpZmljYXRpb24gdG8gZm9ybSBhbiBh cmd1bWVudC4KCl4KCjtFeGFtcGxlOiBsbyBtdWxubyBrYXJkeWdyaSBjdSBndW5tYSBsbyB2byBs b2kgcGFjaSBrYXJkYSB+aHN+ICcnQSBmdWxsIGRlY2sgY29uc2lzdHMgb2YgZm91ciBncm91cHMg b2YgdGhpcnRlZW4gY2FyZHMuJycKCjs6IHN1J28gZGEgem8ndSBsb2kgcmUgbG8naSBybyBtb2tj YSBub2kgc2VwbGkgcHkgbm9pIG1va2NhIGt1J28gZGEgY3UgcmVsY3VrdGFpIH5oc34gJydUd28g c2V0cyBvZiBwb2ludHMgdGhhdCBhcmUgZXF1aWRpc3RhbnQgZnJvbSBhIHBvaW50IFAgaXMgYSBk b3VibGUgY2lyY2xlLicnXgoKCgohISEhIyBQcm9ibGVtcyBvbiBpbm5lciBxdWFudGlmaWNhdGlv bgoKISEhISEjIENhbm5vdCBzYXkgemVybwoKCgpCZWNhdXNlIGFuIGFyZ3VtZW50IGZvcm1lZCBi eSBnYWRyaSBpcyBhIHBsdXJhbCBjb25zdGFudCwge2xvIGJyb2RhfSBpbXBsaWVzIHtzdSdvaSBk YSB6byd1IGRhIGJyb2RhfSBhY2NvcmRpbmcgdG8gdGhlIGxvZ2ljYWwgYXhpb20gb24gcGx1cmFs IGNvbnN0YW50IHNob3duIGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2NvbnN0YW50 fFNlY3Rpb24gMi4yLjYpKS4gVGhhdCBpcyB0byBzYXksIHRoZSBleHByZXNzaW9uIHtsbyBubyBi cm9kYX0gaW1wbGllcyAidGhlcmUgYXJlIHdoYXQgYXJlIGJyb2RhLCB3aGljaCBhcmUgY291bnRl ZCAwIiwgd2hpY2ggc2VlbXMgbWVhbmluZ2xlc3MuCgoKClRoaXMgbWVhbnMgdGhhdCBvZmZpY2lh bCBMb2piYW4gY2Fubm90IGV4cHJlc3MgbmVnYXRpb24gb2YgZXhpc3RlbmNlIG9mIHBsdXJhbCB2 YXJpYWJsZSB7bmFrdSBzdSdvaSBkYX0sIHdoaWNoIGlzIG5ldmVydGhlbGVzcyBuZWNlc3Nhcnks IGZvciBleGFtcGxlIGluIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uOgoKCgpeIGxvIHhvIHByZW51 IGN1IGptYWppIGdpJ2UganVrcGEgZ2knZSBjaXRrYSB+aHN+fi0tfiBub35wcH4KCn4vcHB+Jyci SG93IG1hbnkgcGVvcGxlIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZT8iICJ6ZXJvLiInJ14KCgoK VGhpcyByZXNwb25zZSBpcyBhbiBhYmJyZXZpYXRlZCBmb3JtIG9mIHtsbyBubyBwcmVudSBjdSBq bWFqaSBnaSdlIGp1a3BhIGdpJ2UgY2l0a2F9LgoKCgpUaGlzIHByb3Bvc2l0aW9uIG1lYW5zIHRo YXQge2xvIG5vIHByZW51fSBzYXRpc2ZpZXMgc2VsYnJpIHtqbWFqaX0gY29sbGVjdGl2ZWx5IGFu ZCAoamUpIG5vbi1kaXN0cmlidXRpdmVseSwge2p1a3BhfSBjb2xsZWN0aXZlbHkgb3IgKGphKSBk aXN0cmlidXRpdmVseSwge2NpdGthfSBub24tY29sbGVjdGl2ZWx5IGFuZCAoamUpIGRpc3RyaWJ1 dGl2ZWx5LiBCZWNhdXNlIGl0IGluY2x1ZGVzIHNlbGJyaSB7am1haml9IHRvIGJlIHNhdGlzZmll ZCBub24tZGlzdHJpYnV0aXZlbHksIHRoZSBzdW10aSBjYW5ub3QgYmUgcmVwbGFjZWQgYnkgbmVn YXRpb24gb2YgZXhpc3RlbmNlIG9mIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIHtuYWt1IHN1J28g ZGF9PXtubyBkYX0uIE1vcmVvdmVyLCBiZWNhdXNlIGl0IGluY2x1ZGVzIHNlbGJyaSB7Y2l0a2F9 IHRvIGJlIHNhdGlzZmllZCBub24tY29sbGVjdGl2ZWx5LCB7bG99IG9mIHRoZSBzdW10aSBjYW5u b3QgYmUgcmVwbGFjZWQgYnkge2xvaX09e2xvIGd1bm1hIGJlIGxvfS4KCgoKRm9yIG1ha2luZyBz dWNoIGEgcHJvcG9zaXRpb24gbWVhbmluZ2Z1bCwgaXQgaXMgZXNzZW50aWFsIHRvIGdpdmUgYW4g ZXhwcmVzc2lvbiB7bG8gbm8gYnJvZGF9IGEgbWVhbmluZyBvZiBuZWdhdGlvbiBvZiBleGlzdGVu Y2Ugb2YgcGx1cmFsIHZhcmlhYmxlLgoKRm9yIHRoaXMgcHVycG9zZSwgSSBzdWdnZXN0IHRoZSBm b2xsb3dpbmcgZGVmaW5pdGlvbiB2YWxpZCBpbiB0aGUgY2FzZSB0aGF0IFBBPTAgZm9yIHtsbyBQ QSBicm9kYX0uCgo7VW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtsbyBubyBicm9kYX06fHwKCmxv IG5vIGJyb2RhIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gbmFrdSBzdSdvaSBkYSBwb2kga2Un YSBicm9kYQoKfHwKCgoK77yISWYgaXQgd2VyZSBkZWZpbmVkIGFzIHtuYWt1IGxvIGJyb2RhfSwg dGhlIG5lZ2F0aW9uIHdvdWxkIGhhdmUgc3Bhbm5lZCB0aGUgd2hvbGUgcHJvcG9zaXRpb24sIGFu ZCBpdCB3b3VsZCBub3QgaGF2ZSBpbXBsaWVkIHF1YW50aWZpY2F0aW9uLiBJIGFiYW5kb25lZCB0 aGVyZWZvcmUgc3VjaCBhIGRlZmluaXRpb24uKQoKCgohISEhISMgQ2Fubm90IHF1YW50aWZ5IG1h dGVyaWFsIG5vdW4gb3Igc29tZXRoaW5nCgpBeGlvbSAxIG9mICgofCNJbm5lcl9xdWFudGlmaWNh dGlvbnxTZWN0aW9uIDMuMSkpIGV4Y2x1ZGVzIHN1bXRpIHRoYXQgaXMgbmVpdGhlciBhbiBpbmRp dmlkdWFsIG5vciBpbmRpdmlkdWFscyBmcm9tIGV4cHJlc3Npb25zIHsoc3UnbykgTiBtZWl9IGFu ZCB7bG8gTiBicm9kYX0uCgoKCkNhbiB3ZSB1c2Uge3BpUEF9IGZvciBzdW10aSB0aGF0IGlzIG5l aXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMsIHRoZW4/IE5vLgoKKChCUEZLIFNl Y3Rpb246IGdhZHJpfEFjdHVhbGx5LCBwaVBBIGlzIGRlZmluZWQgb25seSBmb3Igb3V0ZXIgcXVh bnRpZmljYXRpb24uKSkKCnx8CgpwaVBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gcGlQQSBzaSdl IGJlIHBhIG1lICcnc3VtdGknJwoKfHwKCkFzIHdlIGNhbiBzZWUgaW4gdGhlIGRlZmluaXRpb24s IHRoZSBib2R5IG9mIG91dGVyIHF1YW50aWZpY2F0aW9uIGJ5IHtwaVBBfSBpcyBwbHVyYWwgY29u c3RhbnQge2xvIHBpUEEgc2knZX0sIHdoaWNoIGlzIG5vdCBhIGJvdW5kIHNpbmd1bGFyIHZhcmlh YmxlLiBIb3dldmVyLCB4MiBvZiB7cGlQQSBzaSdlfSBpcyB7cGEgbWUgJydzdW10aScnfSwgdG8g d2hpY2ggKChCUEZLIFNlY3Rpb246IGdhZHJpfHRoZSBkZWZpbml0aW9uIG9mIFBBIGJyb2RhKSkg aXMgYXBwbGllZDoKCnx8CgpQQSBicm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGJyb2RhIAoKfHwK CkFzIGEgcmVzdWx0LCB7cGlQQSAnJ3N1bXRpJyd9IGlzIGRlZmluZWQgb25seSB3aGVuIHRoZXJl IGlzIGFuIGluZGl2aWR1YWwgdGhhdCBzYXRpc2ZpZXMgeDEgb2Yge21lICcnc3VtdGknJ30uIFRo YXQgaXMgdG8gc2F5LCB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVh bHMgaXMgZXhjbHVkZWQgYWxzbyBmcm9tIGFuIGV4cHJlc3Npb24gb2Ygb3V0ZXIgcXVhbnRpZmlj YXRpb24gd2l0aCB7cGlQQX0uCgoKCldoYXQgd291bGQgYmUgaWYge3BpUEF9IHdlcmUgZGVmaW5l ZCBhbHNvIGZvciBpbm5lciBxdWFudGlmaWNhdGlvbj8KCkluIHRoYXQgY2FzZSwgdGhlIGZvbGxv d2luZyBkZWZpbml0aW9uIHdvdWxkIGJlIGRlc2lyYWJsZSB0byBjb25mb3JtIHRoZSBkZWZpbml0 aW9uIG9mIHtwaVBBfSBvZiBvdXRlciBxdWFudGlmaWNhdGlvbjoKCjsgVW5vZmZpY2lhbCBkZWZp bml0aW9uIG9mIHtwaVBBfSBvZiBpbm5lciBxdWFudGlmaWNhdGlvbjp8fAoKbG8gcGlQQSBicm9k YSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgcGlQQSBzaSdlIGJlIGxv IHBhIGJyb2RhCgp8fAoKVGhpcyBkZWZpbml0aW9uIG9mIHtwaVBBfSBvZiBpbm5lciBxdWFudGlm aWNhdGlvbiBzdGlsbCBleGNsdWRlcyB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3Ig aW5kaXZpZHVhbHMgdW5sZXNzIHtsbyBwYSBicm9kYX0gaXMgZGVmaW5lZCBpbiBhbm90aGVyIHdh eSBzbyB0aGF0IGl0IGNhbiBiZSB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5k aXZpZHVhbHMuCgoKCldoeSBkb24ndCB3ZSB1c2Uge1BBIHNpJ2V9IHRvIGV4cHJlc3MgcXVhbnRp ZmljYXRpb24gb2Ygd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxz PyAKCkl0IGlzIHBvc3NpYmxlLCBidXQgKChCUEZLIFNlY3Rpb246IE51bWVyaWMgc2VsYnJpfEJQ RksncyBjdXJyZW50IGRlZmluaXRpb24gb2Yge3NpJ2V9KSkgZGVwZW5kcyBvbiB7cGFnYnV9OgoK fHwKCngxIG51bWJlciBzaSdlIHgyIH5oc358fmhzfiB4MSBwYWdidSB4MiBnaSdlIGtsYW5pIGxp IG51bWJlciBsbyBzZSBncmFkdSBiZSB4MgoKfHwKCklmIHdlIGludGVycHJldCB7cGFnYnV9IHNv IHRoYXQgeDEgaXMgbm90IGxhcmdlciB0aGFuIHgyIChhbmQgdGhpcyBpcyBvcmRpbmFyeSBpbnRl cnByZXRhdGlvbiksIFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2xvamJhbi9SQXRF N1lrLWRxdy9uVWJaaXdtQjJNMEp8e3NpJ2V9IGlzIHZlcnkgaW5jb252ZW5pZW50IGJlY2F1c2Ug dGhlIHVuaXQgc2hvdWxkIGJlIGNoYW5nZWQgZXZlcnkgdGltZSBjb3VudGluZyB1cC5dIElmIHtz aSdlfSB3ZXJlIGRlZmluZWQgc28gdGhhdCBQQSBvZiB7UEEgc2knZX0gY291bGQgYmUgbGFyZ2Vy IHRoYW4gMSwge3NpJ2V9IHdvdWxkIGhhdmUgYmVlbiBwcmFnbWF0aWMgZm9yIHF1YW50aWZpY2F0 aW9uIG9mIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoK QmVzaWRlcyB0aG9zZSBjb25zaWRlcmF0aW9ucywgaWYgd2UgYWJhbmRvbiBBeGlvbSAxIG9mICgo fCNJbm5lcl9xdWFudGlmaWNhdGlvbnxTZWN0aW9uIDMuMSkpLCBEZWZpbml0aW9ucyAoRDEpIChE MikgKEQzKSBjYW4gYmUgYXBwbGllZCB0byB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBu b3IgaW5kaXZpZHVhbHMuCgpJbiB0aGlzIGNhc2UsIGEgc3BlYWtlciBzaG91bGQgc2VsZWN0IHNv bWUgcGx1cmFsIGNvbnN0YW50cyB7a28nYSwga28nZSwgLi4ufSwgYW5kIGRlY2lkZSB0aGF0IHtb W2tvJ2Eva28nZS8uLi5dIHN1J28gcGEgbWVpfTsgdGhlIHNlbGVjdGlvbiBtdXN0IGJlIGRvbmUg YXR0ZW50aXZlbHkgc28gdGhhdCByZWZlcmVudHMgb2YgcGx1cmFsIGNvbnN0YW50cyB0aGF0IGFy ZSB7cGEgbWVpfSBkbyBub3Qgb3ZlcmxhcCB3aXRoIGVhY2ggb3RoZXIuCgpUaG9zZSBwcmVwYXJh dGlvbnMgb2Yge2tvJ2EsIGtvJ2UsIC4uLn0gYW5kIChEMikgaW1wbHkgb25seQoKfHwKCmdhbmFp IFtba28nYS9rbydlLy4uLl0gcGEgbWVpIAoKZ2kgcm8nb2kgZGUgcG9pIG1lIFtba28nYS9rbydl Ly4uLl0gem8ndSBkZSBtZSBbW2tvJ2Eva28nZS8uLi5dCgp8fAoKVW5kZXIgdGhlc2UgY29uZGl0 aW9ucywgdGhlcmUgaXMgbm8gbmVlZCB0aGF0IHdoYXQgaXMgeDEgb2Yge3BhIG1laX0gaXMgYW4g aW5kaXZpZHVhbC4KCgoKV2hlbiB3ZSB1c2UgRGVmaW5pdGlvbnMgKEQxKSAoRDIpIChEMykgd2l0 aG91dCB1c2luZyBBeGlvbSAxIG9mICgofCNJbm5lcl9xdWFudGlmaWNhdGlvbnxTZWN0aW9uIDMu MSkpLCBhIGNvbmRpdGlvbiB7Z2knZSBzdSdvIHBhIG1laX0gbXVzdCBiZSBhZGRlZCB0byB7ZGV9 IG9mIChEMSnvvIhXaGVuIEF4aW9tIDEgaXMgdXNlZCwgcmVmZXJlbnRzIGluIHRoZSBkb21haW4g b2YgdmFyaWFibGUge2RlfSBzYXRpc2ZpZXMgdGhpcyBjb25kaXRpb24gYXV0b21hdGljYWxseSku IAoKO1Vub2ZmaWNpYWwgZGVmaW5pdGlvbnMgdW5kZXIgdGhlIGNvbmRpdGlvbiB0aGF0IEF4aW9t IDEgaXMgYWJhbmRvbmVkOnx8CgooRDEnKSBrbydhIHN1J28gTiBtZWkgfmhzfnx+aHN+ID1jYSdl IH5oc358fmhzfiBzdSdvaSBkYSBwb2kgbWUga28nYSBrdSdvIHN1J29pIGRlIHBvaSBtZSBrbydh IGdpJ2Ugc3UnbyBwYSBtZWkgem8ndSBnZSBkYSBzdSdvIE4tMSBtZWkgZ2luYWkgZGUgbWUgZGEK CihEMikga28nYSBOIG1laSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IGtvJ2Egc3UnbyBOIG1l aSBnaSdlIG5haSBzdSdvIE4rMSBtZWkgCgooRDMpIGxvIFBBIGJyb2RhIH5oc358fmhzfiA9Y2En ZSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBQQSBtZWkgZ2knZSBicm9kYQoKfHwKClVzaW5nIHRo ZXNlIGRlZmluaXRpb25zLCBpbm5lciBxdWFudGlmaWNhdGlvbiBvZiB3aGF0IGlzIG5laXRoZXIg YW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMgYmVjb21lcyBwb3NzaWJsZS4gTW9yZW92ZXIs ICJVbm9mZmljaWFsIGRlZmluaXRpb24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0aW9u IiBkaXNjdXNzZWQgYWJvdmUgYmVjb21lcyBhYmxlIHRvIGJlIGFwcGxpZWQgdG8gd2hhdCBpcyBu ZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpUaGUgZGlhZ3JhbSBiZWxv dyBzaG93cyBhIHByb2NlZHVyZSBvZiBjb3VudGluZyB1cCB3aGF0IGlzIG5laXRoZXIgYW4gaW5k aXZpZHVhbCBub3IgaW5kaXZpZHVhbHMgcmVwcmVzZW50ZWQgd2l0aCBhIGRpcmVjdGVkIGdyYXBo LiBJbiB0aGlzIGRpYWdyYW0sIGxvb3BzIHN1Y2ggYXMge1ggbWUgWH0gYXJlIG9taXR0ZWQgZm9y IHNpbXBsaWNpdHksIHRob3VnaCB0aGV5IGV4aXN0LiBBbW9uZyBpbmZpbml0ZSBudW1iZXIgb2Yg dmVydGljZXMgKHBsdXJhbCBjb25zdGFudHMpLCB0aGUgdmVydGljZXMgdGhhdCBhIHNwZWFrZXIg c2VsZWN0ZWQgYXMge3N1J28gcGEgbWVpfSBhcmUgY29sb3JlZCBwaW5rLiBDb3VudGluZyB1cCBj b3JyZXNwb25kcyB0byBzZWxlY3RpbmcgYSB0cmVlIHRoYXQgaXMgYSBzdWJncmFwaCBvZiBhIGRp cmVjdGVkIGdyYXBoIGZvcm1lZCB3aXRoIHttZX0sIGZvciBleGFtcGxlIHRoZSBwYXJ0IG9mIGJs dWUgY29sb3IgaW4gdGhlIGRpYWdyYW0uCgoKCntpbWcgZmlsZUlkPSI5IiB0aHVtYj0ieSIgcmVs PSJib3hbZ10ifQoKCgohISEjIE91dGVyIHF1YW50aWZpY2F0aW9uCgooKEJQRksgU2VjdGlvbjog Z2Fkcml8QlBGSyBkZWZpbmVzIG91dGVyIHF1YW50aWZpY2F0aW9uKSkgYXMgZm9sbG93czoKCnx8 CgpQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IFBBIGRhIHBvaSBrZSdhIG1lICcnc3VtdGknJwoKUEEg YnJvZGEgfmhzfnx+aHN+IFBBIGRhIHBvaSBicm9kYSAKCnBpUEEgJydzdW10aScnIH5oc358fmhz fiBsbyBwaVBBIHNpJ2UgYmUgcGEgbWUgJydzdW10aScnCgp8fAoKCgpPdXRlciBxdWFudGlmaWNh dGlvbiBleGNlcHQge3BpUEF9IGZvcm1zIHtQQSBkYX0sIHdoaWNoIGlzIG9mZmljaWFsbHkgYSBi b3VuZCBzaW5ndWxhciB2YXJpYWJsZS4gSXQgaW1wbGllcyB0aGF0IHRoZXNlIGFyZ3VtZW50cyBz YXRpc2Z5IGEgcHJlZGljYXRlIF9fZGlzdHJpYnV0aXZlbHlfXy4gRm9yIGV4YW1wbGUsIGl0IGlz IG1lYW5pbmdsZXNzIHRvIHVzZSB7Y2kgbG8gcHJlbnV9IGFzIHgxIG9mIHtqbWFqaX0gKGdhdGhl ciksIGJlY2F1c2UgaXQgaXMgbm90IHRoZSBjYXNlIHRoYXQgZWFjaCBvZiB0aHJlZSBwZW9wbGUg c2F0aXNmaWVzIHRoZSBwcmVkaWNhdGUgImdhdGhlciIuCgoKCkhvd2V2ZXIsIGlmIHdlIHVzZSB1 bm9mZmljaWFsIHBsdXJhbCBxdWFudGlmaWVycyB7cm8nb2l9IG9yIHtzdSdvaX0gZm9yIFBBLCBv dXRlciBxdWFudGlmaWNhdGlvbiBjYW4gZm9ybSBib3VuZCBwbHVyYWwgdmFyaWFibGUuIEZvciBl eGFtcGxlLAoKXnN1J29pIHByZW51IGN1IGptYWppIH5oc34gdGhlcmUgYXJlIHBlb3BsZSB3aG8g Z2F0aGVyLl4KClRoaXMgcHJvcG9zaXRpb24gaXMgaW1wbGllZCBieSBhIHByb3Bvc2l0aW9uIGlu Y2x1ZGluZyBwbHVyYWwgY29uc3RhbnQKCl5sbyBwcmVudSBjdSBqbWFqaSB+aHN+IFBlb3BsZSBn YXRoZXIuXgoKd2l0aCB0aGUgbG9naWNhbCBheGlvbSBpbiAoKHwjQV9sb2dpY2FsX2F4aW9tX29u X3BsdXJhbF9jb25zdGFudHxTZWN0aW9uIDIuMi42KSkuCgoKCntQQSBsbyBicm9kYX0gZGlmZmVy cyBmcm9tIHtQQSBicm9kYX0gaW4gZG9tYWluIG9mIHJlZmVyZW50cyBvZiBib3VuZCBzaW5ndWxh ciB2YXJpYWJsZSB0byBiZSBjb3VudGVkLiBUaGUgZGVmaW5pdGlvbnMgb2Ygb3V0ZXIgcXVhbnRp ZmljYXRpb24gYXJlIGFwcGxpZWQgdG8gdGhlbSBhcyBmb2xsb3dzOgoKfHwKClBBIGxvIGJyb2Rh IH5oc358fmhzfiBQQSBkYSBwb2kga2UnYSBtZSBsbyBicm9kYSB+aHN+fH5oc34gVGhlIGRvbWFp biBvZiBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSBpcyBhIHJlZmVyZW50IG9mIHBsdXJhbCBjb25z dGFudCB7bG8gYnJvZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGFuZCBjb3VudGVk IHRvIGJlIFBBCgpQQSBicm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGtlJ2EgYnJvZGEgfmhzfnx+ aHN+IFRoZSBkb21haW4gb2YgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUgaXMgYWxsIHRoYXQgYXJl IHticm9kYX0gaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIGNvdW50ZWQgdG8gYmUg UEEKCnx8CgoKCl4KCjtFeGFtcGxlIDE6IHJvIGptaXZlIGJhIG1vcnNpIH5oc34gJydBbGwgbGl2 aW5nIHRoaW5ncyB3aWxsIGRpZS4nJwoKO0V4YW1wbGUgMjogcm8gbG8gcHJlbnUgdGkga2xhbWEg fmhzfiAnJ0FsbCB0aGUgcGVvcGxlIGNvbWUgaGVyZS4nJ14KCkV4YW1wbGUgMSBtZW50aW9ucyBh bGwge2ptaXZlfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLiBJbiB0aGUgdW5pdmVyc2Ug b2YgZGlzY291cnNlIG9mIEV4YW1wbGUgMiwgaXQgaXMgcG9zc2libGUgdG8gaW50ZXJwcmV0IHRo YXQgdGhlcmUgYXJlIHtwcmVudX0gb3RoZXIgdGhhbiB0aGUgcmVmZXJlbnQgb2YgdGhlIHBsdXJh bCBjb25zdGFudCB7bG8gcHJlbnV9LgoKCgpUaGUgb3V0ZXIgcXVhbnRpZmljYXRpb24gYnkge3Bp UEF9IGZvcm1zIHBsdXJhbCBjb25zdGFudCB7bG8gcGlQQSBzaSdlfS4gSG93ZXZlciwgeDIgb2Yg e3BpUEEgc2knZX0gaXMgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUge3BhIG1lICcnc3VtdGknJ30u IHtwaX0gaW4gdGhpcyBkZWZpbml0aW9uIG1lYW5zICJub3QgbGFyZ2VyIHRoYW4gMSI7IHByYWN0 aWNhbGx5LCB7ZmkndX0gb3Igc29tZXRoaW5nIGNhbiBiZSB1c2VkIGluc3RlYWQgb2Yge3BpfQoK CgohISEhIyBDb21iaW5hdGlvbiBvZiBvdXRlciBhbmQgaW5uZXIgcXVhbnRpZmljYXRpb25zCgpU aGUgZGVmaW5pdGlvbnMgb2YgaW5uZXIgYW5kIG91dGVyIHF1YW50aWZpY2F0aW9uIGltcGx5IHRo ZSBmb2xsb3dpbmcgaW50ZXJwcmV0YXRpb25zOgoKfHwKCk0gbG8gW1tOXSBicm9kYSB+aHN+fH5o c34gTSAod2hpY2ggc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8g YnJvZGF9IFtbdGhhdCBhcmUgTl0KCk0gbG9pIFtbTl0gYnJvZGEgfmhzfnx+aHN+IE0gKHdoaWNo IHNhdGlzZmllcyBhIHByZWRpY2F0ZSBkaXN0cmlidXRpdmVseSkgb2Yge2xvIGd1bm1hfSB0aGF0 IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKTSBsbydpIFtbTl0gYnJvZGEg fmhzfnx+aHN+IE0gKHdoaWNoIHNhdGlzZmllcyBhIHByZWRpY2F0ZSBkaXN0cmlidXRpdmVseSkg b2Yge2xvIHNlbGNtaX0gdGhhdCBjb25zaXN0cyBvZiB7bG8gYnJvZGF9IFtbdGhhdCBhcmUgTl0K CnBpIE0gbG8gW1tOXSBicm9kYSB+aHN+fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBw YXJ0IG9mIG9uZSBvZiB7bG8gYnJvZGF9IFtbdGhhdCBhcmUgTl0KCnBpIE0gbG9pIFtbTl0gYnJv ZGEgfmhzfnx+aHN+IFF1YW50aXR5IHtwaSBNIHNpJ2V9IG9mIGEgcGFydCBvZiBvbmUgb2Yge2xv IGd1bm1hfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBs bydpIFtbTl0gYnJvZGEgfmhzfnx+aHN+IFF1YW50aXR5IHtwaSBNIHNpJ2V9IG9mIGEgcGFydCAo c3Vic2V0KSBvZiBvbmUgb2Yge2xvIHNlbGNtaX0gdGhhdCBjb25zaXN0cyBvZiB7bG8gYnJvZGF9 IFtbdGhhdCBhcmUgTl0KCnx8CgoKCkFtb25nIHRoZW0sIHtNIGxvIFtbTl0gYnJvZGF9IGFuZCB7 cGkgTSBsb2kgW1tOXSBicm9kYX0gY2FuIGV4cHJlc3Mgc29tZSBvZiBwbHVyYWwgbnVtYmVyIG9m IHRoaW5ncy4KCl4KCjtFeGFtcGxlIDE6IHJlIGxvIFtbY2ldIG1sYXR1IG1pIHZpc2thIH5oc34g JydUd28gW1tvZiB0aHJlZV0gY2F0cyBzZWUgbWUuJycKCjtFeGFtcGxlIDI6IHJlIGZpJ3UgY2kg bG9pIFtbdmVpIGNpIHBpJ2kgbnkgKHZlJ28pXSBtbGF0dSBtaSB2aXNrYSB+aHN+ICcnVHdvIHRo aXJkIG9mIFtbM25dIGNhdHMgc2VlIG1lLicnXgoKCgp7cmUgbG8gW1tjaV0gbWxhdHV9IG9mIEV4 YW1wbGUgMSByZWZlcnMgdG8gdHdvIGNhdHMgYW1vbmcgW1t0aHJlZV0gY2F0cyB0aGF0IGFyZSBy ZWZlcmVudCBvZiB7bG8gW1tjaV0gbWxhdHV9LgoKSWYgdGhlIGlubmVyIHF1YW50aWZpZXIge2Np fSBpcyBub3Qgc2FpZCwgaXQgaXMgdW5jbGVhciBob3cgbWFueSBjYXRzIGFyZSByZWZlcnJlZCB0 byBieSB7bG8gbWxhdHV9OyBpbiBhbnkgY2FzZSB7cmUgbG8gbWxhdHV9IHJlZmVycyB0byB0d28g b2YgdGhlbS4KCgoKSW4gRXhhbXBsZSAyLCB0aGUgYXJndW1lbnQgaXMgZm9ybWVkIGJ5IHtsb2l9 LCBhbmQgdGhlIHJlZmVyZW50IGlzIGFjdHVhbGx5IHtsbyBndW5tYX0uIEV4cGFuZGluZyBFeGFt cGxlIDIgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9ucyBvZiB7bG9pfSBhbmQge3BpUEEgJydz dW10aScnfSwKCl4KCjtFeGFtcGxlIDItMTogbG8gcmUgZmkndSBjaSBzaSdlIGJlIHBhIG1lIGxv IGd1bm1hIGJlIGxvIFtbdmVpIGNpIHBpJ2kgbnkgKHZlJ28pXSBtbGF0dSBtaSB2aXNrYV4KClRo YXQgaXMgdG8gc2F5LCB7cmUgZmkndSBjaSBsb2kuLi59IHJlZmVycyB0byB0d28gdGhpcmQgb2Yg YW4gaW5kaXZpZHVhbCB7cGEgbWUgbG8gZ3VubWEuLi59LiBUaGlzIHtsbyBndW5tYX0gY29uc2lz dHMgb2Yge3ZlaSBjaSBwaSdpIG55ICh2ZSdvKX0gY2F0cy4gCgpJZiB0aGUgaW5uZXIgcXVhbnRp ZmllciBpcyBub3Qgc2FpZCwgaXQgaXMgdW5jbGVhciBob3cgbWFueSBjYXRzIGNvbnN0aXR1dGUg e2xvIGd1bm1hfSB0aGF0IGlzIHtsb2kgbWxhdHV9OyBpbiBhbnkgY2FzZSB7cmUgZmkndSBjaSBs b2kgbWxhdHV9IHJlZmVycyB0byB0d28gdGhpcmQgb2Yge2xvIGd1bm1hfS4gSG93ZXZlciwgCgpe cmUgZmkndSBjaSBsb2kgbWxhdHUgbWkgdmlza2FeCgppcyBtZWFuaW5nZnVsIG9ubHkgd2hlbiB7 bG9pIG1sYXR1fSBjb25zaXN0cyBvZiAzbiBjYXRzLCBiZWNhdXNlIGl0IGlzIG5vdCBvcmRpbmFy eSB0byBpbnRlcnByZXQgdGhhdCBhIGZyYWdtZW50IG9mIGEgY2F0IHNhdGlzZmllcyB0aGUgcHJl ZGljYXRlIHt2aXNrYX0uCgpBY2NvcmRpbmcgdG8gQlBGSydzIGRlZmluaXRpb24sIHtsb2l9IGNh bm5vdCBmb3JtIGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIG5v bi1jb2xsZWN0aXZlbHkuIElmIHlvdSB3YW50IHRvIG1lYW4gImNhdHMgc2VlIG1lIG5vbi1jb2xs ZWN0aXZlbHkiLCBhdm9pZCB7bG9pfSwgb3IgdXNlIHtsdSdhfSwgd2hpY2ggd2lsbCBiZSBkaXNj dXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNl Y3Rpb24gMy4zKSk6CgpebHUnYSByZSBmaSd1IGNpIGxvaSBtbGF0dSBtaSB2aXNrYV4KCgoKISEh ISMgQm91bmQgdmFyaWFibGVzIGFuZCBjb25zdGFudHMgaW4gYSBzdGF0ZW1lbnQKCldoZW4gYm90 aCBib3VuZCB2YXJpYWJsZXMgYW5kIGNvbnN0YW50cyBhcHBlYXIgaW4gYSBzdGF0ZW1lbnQsIHRo ZSBjb25zdGFudHMgZG8gbm90IG5lY2Vzc2FyaWx5IHNwYW4gb3ZlciBhbGwgYm91bmQgdmFyaWFi bGVzLiBBbHRob3VnaCB0aGV5IGFyZSBjYWxsZWQgImNvbnN0YW50cyIsIGl0IGlzIG5vdCBnZW5l cmFsbHkgZGV0ZXJtaW5lZCB3aGV0aGVyIHRoZXkgcmVmZXIgdG8gY29tbW9uIHJlZmVyZW50cyBm b3IgYWxsIHJlZmVyZW50cyBpbiBkb21haW5zIG9mIHZhcmlhYmxlcywgb3IgdGhleSByZWZlciB0 byBkaWZmZXJlbnQgcmVmZXJlbnRzIGRlcGVuZGVudCBvbiByZWZlcmVudHMgaW4gZG9tYWlucyBv ZiB2YXJpYWJsZXMuIFRoZSByZWFzb24gZm9sbG93cyBiZWxvdyAoW2h0dHBzOi8vZ3JvdXBzLmdv b2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3L0FCRGZPZnVveldFSnxEaXNjdXNzaW9u XSkuCgoKCldoZW4gc29tZSBzdW10aSBvZiB0ZXJicmkgaW4gYSBzdGF0ZW1lbnQgYXJlIG9taXR0 ZWQsIGl0IGlzIGNvbnNpZGVyZWQgdGhhdCB0aGVyZSBhcmUgaW1wbGljaXQge3pvJ2V9IGluIHRo b3NlIHBsYWNlcyAoW2h0dHA6Ly9sb2piYW4uZ2l0aHViLmlvL2NsbC83LzcvfENMTCA3LjddKS4K CkZvciBleGFtcGxlLAoKXnJvIG1sYXR1IGN1IGpiZW5hfnBwfgoKfi9wcH4gICcnQWxsIGNhdHMg YXJlL3dpbGwgYmUgYm9ybi4nJ14KCnNlZW1zIHRvIGJlIHRydWUgZnJvbSBhIHN0YW5kYXJkIHBv aW50IG9mIHZpZXcuIEFjY29yZGluZyB0byBkZWZpbml0aW9uIG9mIHRlcmJyaSBvZiB7amJlbmF9 LCBpdCBpcyBjb25zaWRlcmVkIHRoYXQgdGhyZWUgc3VtdGkgYXJlIG9taXR0ZWQsIGFuZCB0aGlz IHN0YXRlbWVudCBoYXMgdGhlIHNhbWUgbWVhbmluZyBhcwoKXnJvIG1sYXR1IGN1IGpiZW5hIHpv J2Ugem8nZSB6bydlXgoKaW4gd2hpY2gge3pvJ2V9IGFyZSBleHBsaWNpdC4gCgpVbmxlc3MgYWxs IGNhdHMgaW4gdGhpcyB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgYXJlL3dpbGwgYmUgYm9ybiB0byBj b21tb24gcGFyZW50cyBhdCB0aGUgc2FtZSB0aW1lIGF0IHRoZSBzYW1lIHBsYWNlLCB0aGVzZSB7 em8nZX0gY2Fubm90IGJlIGNvbnNpZGVyZWQgYXMgY29tbW9uIGNvbnN0YW50cyBmb3IgYWxsIHJl ZmVyZW50cyBpbiBhIGRvbWFpbiBvZiB7cm8gbWxhdHV9LiBJbiBvcmRlciB0byBtYWtlIHN1Y2gg YW4gZXhwcmVzc2lvbiBsaWtlIHtybyBtbGF0dSBjdSBqYmVuYX0gaGF2ZSBpbnRlbmRlZCBtZWFu aW5nLCAiY29uc3RhbnRzIiBvZiBMb2piYW4gY2FuIGJlIGRlcGVuZGVudCBvbiByZWZlcmVudHMg aW4gZG9tYWlucyBvZiBib3VuZCB2YXJpYWJsZXMuCgoKCiJDb25zdGFudHMiIGluIHRoaXMgbWVh bmluZyBjb3JyZXNwb25kIHRvIFNrb2xlbSBmdW5jdGlvbnMgaW4gU2tvbGVtIG5vcm1hbCBmb3Jt cyBvZiBwcmVkaWNhdGUgbG9naWMuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyBjb21wYXJpc29uIG9m IGludGVycHJldGF0aW9ucyBiZXR3ZWVuIHByZWRpY2F0ZSBsb2dpYywgeG9ybG8gb24gd2hpY2gg dGhpcyBjb21tZW50YXJ5IGRlcGVuZHMgYW5kIGltcGxpY2l0IHF1YW50aWZpZXIgKFtodHRwOi8v bG9qYmFuLmdpdGh1Yi5pby9jbGwvNi8xL3xDTEwgQ2hhcHRlciA2XSkgd2hpY2ggd2FzIGFib2xp c2hlZC4gVGhlIGV4cHJlc3Npb25zIHRoYXQgaGF2ZSB0aGUgc2FtZSB0cnV0aCB2YWx1ZSBhcmUg YWxpZ25lZCBpbiB0aGUgc2FtZSBjb2x1bW4uIFVwcGVyIGNhc2UgWSByZXByZXNlbnRzIGEgcGx1 cmFsIHZhcmlhYmxlLiBUaGUgcm93IG9mIHpvJ2UreG9ybG8gc2hvd3MgdW5vZmZpY2lhbCBzdWdn ZXN0aW9uIG9mIGludGVycHJldGF0aW9uLiBJbiB0aGUgZ3JheSBwYXJ0IGluIHRoZSByb3cgb2Yg UHJlbmV4IG5vcm1hbCwgdW5vZmZpY2lhbCBleHByZXNzaW9ucyB3aXRoIGFuIGV4cGVyaW1lbnRh bCBjbWF2byB7c3Unb2l9IGFyZSBzaG93bi4gKENsaWNrIG9uIHRoZSB0YWJsZSB0byBlbmxhcmdl LikKCntpbWcgZmlsZUlkPSIxMiIgdGh1bWI9InkiIGxpbms9ImRpc3BsYXkxMSIgcmVsPSJib3hb Z10ifQoKCgohISEjIFJlbGF0aW9uIGJldHdlZW4gbHUnYSwgbHUnbywgbHUnaSBhbmQgZ2FkcmkK CigoQlBGSyBTZWN0aW9uOiBJbmRpcmVjdCBSZWZlcmVyc3xCUEZLIGRlZmluZXMpKSB7bHUnYX0s IHtsdSdvfSwge2x1J2l9IG9mIExBaEUgYXMgZm9sbG93czoKCnx8CgpsdSdhICcnc3VtdGknJyB+ aHN+fH5oc34gbG8gbWUgJydzdW10aScnIH5oc358fmhzfiBsbyBjbWltYSBiZSAnJ3N1bXRpJycg W1tub2kgc2VsY21pXQoKbHUnbyAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvaSBtZSAnJ3N1bXRpJycK Cmx1J2kgJydzdW10aScnIH5oc358fmhzfiBsbydpIG1lICcnc3VtdGknJwoKfHwKCkhvd2V2ZXIs IGd1ZXNzaW5nIGZyb20gdGhlIEVuZ2xpc2ggZGVmaW5pdGlvbnMgb24gdGhlIHNhbWUgcGFnZSwg dGhlIGRlZmluaXRpb24gb2Yge2x1J2F9IGlzIHVuc2F0aXNmYWN0b3J5LCBhbmQgdGhhdCBvZiB7 bHUnb30gaGFzIHNvbWUgcHJvYmxlbS4KCgoKe2x1J2F9IGV4dHJhY3RzIHgyIG9mIHtzZWxjbWl9 IGZyb20gc3VtdGkgdGhhdCBpcyB7bG8gc2VsY21pfSwgYW5kIHgyIG9mIHtndW5tYX0gZnJvbSBz dW10aSB0aGF0IGlzIHtsbyBndW5tYX0uIE1vcmVvdmVyLCB7bHUnYX0gbWFrZXMgZXhwbGljaXQg dGhhdCB0aGUgc3VtdGkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5IGFuZCBu b24tY29sbGVjdGl2ZWx5LiBPbiB0aGUgb3RoZXIgaGFuZCwgYWNjb3JkaW5nIHRvIHRoZSBkZWZp bml0aW9uIG9mIHtsb30sIHtsbyBtZSAnJ3N1bXRpJyd9IGRvZXMgbm90IGltcGx5ICJkaXN0cmli dXRpdmVseSBhbmQgbm9uLWNvbGxlY3RpdmVseSIuCgoKCntsdSdvfSBtYWtlcyBleHBsaWNpdCB0 aGF0IHRoZSBzdW10aSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWRpc3RyaWJ1dGl2ZWx5IGFu ZCBjb2xsZWN0aXZlbHkuIE9uIHRoZSBvdGhlciBoYW5kLCBhY2NvcmRpbmcgdG8gdGhlIGRlZmlu aXRpb24gb2Yge2xvaX0sIHtsb2kgbWUgJydzdW10aScnfSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUg Y29sbGVjdGl2ZWx5LCBidXQgc3RpbGwgdW5jbGVhciBpZiBpdCBkb2VzIG5vbi1kaXN0cmlidXRp dmVseS4gRm9yIGNvbnNpc3RlbmN5LCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gYWRkICJ7bG9pIGJy b2RhfSBpbXBsaWVzIHRoYXQgcmVmZXJlbnQgb2YgeDEgb2YgYnJvZGEgY29sbGVjdGl2ZWx5IGFu ZCBub24tZGlzdHJpYnV0aXZlbHkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIiB0byB0aGUgZGVmaW5p dGlvbiBvZiB7bG9pfS4KCgoKQXMgYSBjb25jbHVzaW9uIG9mIHRoaXMgc2VjdGlvbiwgSSBzdWdn ZXN0IHRvIHJlLWRlZmluZSB7bHUnYX0gYXMgZm9sbG93czoKCjsgVW5vZmZpY2lhbCBkZWZpbml0 aW9uIG9mIHtsdSdhfTp8fAoKbHUnYSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGNtaW1hIGJlICcn c3VtdGknJyBub2kgc2VsY21pIGt1IG9uYWkgbG8gc2UgZ3VubWEgYmUgJydzdW10aScnIG5vaSBn dW5tYSBrdSBvbmFpIGxvIG1lICcnc3VtdGknJyBrdSB+cHB+Cgp+L3BwfiB+aHN+IHZ1J28gbm9p IHN1J28gZGEgem8ndSBkYSBtZSBrZSdhIGdpJ2Ugbm8nYQoKfHwKCkluIHtub2l9IGNsYXVzZSBh ZnRlciB7dnUnb30sIGl0IGlzIG1hZGUgZXhwbGljaXQgdGhhdCB0aGUgcmVmZXJlbnQgb2Yge2x1 J2EgJydzdW10aScnfSBkaXN0cmlidXRpdmVseSBzYXRpc2ZpZXMgdGhlIHNlbnRlbmNlIHRoYXQg aW5jbHVkZXMgdGhpcyBzdW10aS4KCgoKISEhIyBSZWxhdGlvbiBiZXR3ZWVuIGpvJ3UsIGpvaSwg Y2UgYW5kIGdhZHJpCgooKEJQRksgU2VjdGlvbjogTm9uLWxvZ2ljYWwgQ29ubmVjdGl2ZXN8QWNj b3JkaW5nIHRvIEJQRksgU2VjdGlvbikpIHtqbyd1fSwge2pvaX0gYW5kIHtjZX0gb2Ygc2VsbWEn byBKT0kgYXJlIGRlZmluZWQgYXMgZm9sbG93czp8fAoKX19YX18gam8ndSBfX1lfXyB+aHN+fH5o c34gbG8gc3V6bWVpIG5vaSBfX1hfXyAuZSBfX1lfXyAuZSBubyBkcmF0YSBiZSBfX1hfXyAuZSBf X1lfXyBjdSBtZSBrZSdhCgpfX1hfXyBqb2kgX19ZX18gfmhzfnx+aHN+IGxvIGd1bm1hIGJlIF9f WF9fIC5lIF9fWV9fIC5lIG5vIGRyYXRhIGJlIF9fWF9fIC5lIF9fWV9fCgpfX1hfXyBjZSBfX1lf XyB+aHN+fH5oc34gbG8gc2UgY21pbWEgYmUgX19YX18gLmUgX19ZX18gLmUgbm8gZHJhdGEgYmUg X19YX18gLmUgX19ZX18KCnx8CgpUaGV5IGNvcnJlc3BvbmQgcmVzcGVjdGl2ZWx5IHRvIHtsb30s IHtsb2l9LCB7bG8naX0gb2YgZ2FkcmkuIFRoZXkgY29ubmVjdCB0d28gc3VtdGk6IHtqbyd1fSBm b3JtcyBhIHBsdXJhbCBjb25zdGFudCwge2pvaX0gYSBub24tZGlzdHJpYnV0aXZlIHBsdXJhbCBj b25zdGFudCwge2NlfSBhIHBsdXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byBzZXQocykgdGhh dCBjb25zaXN0KHMpIG9mIHRoZSBzdW10aSB0aGF0IHtjZX0gY29ubmVjdHMuIEluIHRoZSBFbmds aXNoIGRlZmluaXRpb24gb2Yge2pvaX0gb2YgQlBGSywgIm5vbi1kaXN0cmlidXRpdmUiIGlzIG1l bnRpb25lZC4gVGhpcyBmYWN0IGFsc28gc3VwcG9ydHMgdGhlIHN1Z2dlc3Rpb24gaW4gKCh8I1Jl bGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSkgdG8g YWRkICJ7bG9pIGJyb2RhfSBpbXBsaWVzIHRoYXQgcmVmZXJlbnQgb2YgeDEgb2YgYnJvZGEgY29s bGVjdGl2ZWx5IGFuZCBub24tZGlzdHJpYnV0aXZlbHkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIiB0 byB0aGUgZGVmaW5pdGlvbiBvZiB7bG9pfS4KCgoKRXZlbiBpZiBfX1hfXyBvciBfX1lfXyBhcmUg Ym91bmQgdmFyaWFibGVzLCB0aGVzZSBjb25uZWN0aXZlcyBmb3JtIGNvbnN0YW50cy4gSW4gdGhp cyBjYXNlLCBpdCBpcyBub3QgZGV0ZXJtaW5lZCB3aGV0aGVyIHRoZSBmb3JtZWQgY29uc3RhbnRz IGRlcGVuZCBvbiBfX1hfXyBhbmQgX19ZX18sIG9yIHRoZXkgYXJlIGNvbW1vbiB0byBhbGwgcmVm ZXJlbnRzIGluIHRoZSBkb21haW5zIG9mIF9fWF9fIGFuZCBfX1lfXy4gU2VlICgofCNCb3VuZF92 YXJpYWJsZXNfYW5kX2NvbnN0YW50c19pbl9hX3N0YXRlbWVudHxTZWN0aW9uIDMuMi4yKSkgZm9y IGRldGFpbC4KCgoKQmVjYXVzZSB0aGV5IGFyZSBjbWF2byBpbiBzZWxtYSdvIEpPSSwgdGhleSBj YW4gY29ubmVjdCB3aGF0IGFyZSBub3Qgc3VtdGksIGJ1dCB0aGUgbWVhbmluZ3MgaW4gdGhpcyB1 c2FnZSBhcmUgbm90IG9mZmljaWFsbHkgZGVmaW5lZC4gVGhleSBjYW4gZm9ybSBhbHNvIGZvcmV0 aG91Z2h0IGNvbm5lY3RpdmUge0pPSSBnaSBfX1hfXyBnaSBfX1lfX30uIFdoZW4gdGhlIGZvcmV0 aG91Z2h0IGNvbm5lY3RpdmVzIGFyZSB1c2VkIGZvciBzdW10aSwgdGhleSBmb3JtIHRoZSBzYW1l IGNvbnN0YW50cyBhcyB0aGUgYWZ0ZXJ0aG91Z2h0IHVzYWdlIGRlZmluZWQgYWJvdmUuCgoKCiEh IyBOb3RlcwoKVGhpcyBzZWN0aW9uIGNvbnNpc3RzIG9mIG5vdGVzIG9mIHRoZSBhdXRob3IgZ3Vz a2FudCwgYW5kIGl0IGlzIG5vdCBhdCBhbGwgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIGdh ZHJpLgoKCgohISEjIEFib3V0IG9udG9sb2d5CgpeKChCUEZLIFNlY3Rpb246IGdhZHJpfCcnUG9z aXRpdmUgaW1wYWN0OiBTb21lIHVzYWdlcyB0aGF0IG1ha2UgbGl0dGxlIHNlbnNlIHdpdGgge2xv fT17c3Unb30gYmVjb21lIHZhbGlkYXRlZC4nJykpIGFjY29yZGluZyB0byBCUEZLLl4KCgoKe2xv fT17c3Unb30gd2FzIGFiYW5kb25lZCwgYnV0IGJlY2F1c2Ugb2YgdGhlIGZhY3QgdGhhdCB7bG8g YnJvZGF9IGlzIGEgcGx1cmFsIGNvbnN0YW50LCBhbmQgYmVjYXVzZSBvZiBhIGxvZ2ljYWwgYXhp b20gb2YgcGx1cmFsIGNvbnN0YW50IGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2Nv bnN0YW50fFNlY3Rpb24gMi4yLjYpKSwge2xvIGJyb2RhIGN1IGJyb2RlfSBpbXBsaWNpdGx5IGlt cGxpZXMge3N1J29pIGRhIGJyb2RlfS4KCgoKISEhIyBjbGF4dSB4MgoKXigoQlBGSyBTZWN0aW9u OiBnYWRyaXxsZSBjbWFuYSBfX2xvX18gY2lkamEgYmEgY2xheHUpKX5wcH4KCn4vcHB+ICAnJ0lu IHRoZSBtb3VudGFpbnMgdGhlcmUgaXMgbm8gZm9vZC4nJ35wcH4KCn4vcHB+KChsYXBvaSBwZWx4 dSBrdSdvIHRyYWp5bm9ibGkpKV4KCgoKRXhwYW5kaW5nIHtsbyBjaWRqYX0sIAoKXmxlIGNtYW5h IHpvJ2Ugbm9pIGtlJ2EgY2lkamEga3UnbyBiYSBjbGF4dV4KCkFjY29yZGluZyB0byAoKEJQRksg U2VjdGlvbjogU3Vib3JkaW5hdG9yc3x0aGUgZGVmaW5pdGlvbiBvZiB7bm9pfSkpLCAKCl5sZSBj bWFuYSB6bydlIHRvIHJpIHhpIHJhdSBjaWRqYSB0b2kgYmEgY2xheHVeCgpUaGUgcGFydCBiZXR3 ZWVuIHt0b30gYW5kIHt0b2l9IGlzIGEgcGFyZW50aGV0aWNhbCBleHByZXNzaW9uLiBUaGUgbWFp biBwcm9wb3NpdGlvbiBpcyB0aHVzCgpebGUgY21hbmEgem8nZSBiYSBjbGF4dV4KCndoZXJlIHt6 bydlfSBpcyBhIHBsdXJhbCBjb25zdGFudC4gQWNjb3JkaW5nIHRvIHRoZSBsb2dpY2FsIGF4aW9t IG9mIHBsdXJhbCBjb25zdGFudCBpbiAoKHwjQV9sb2dpY2FsX2F4aW9tX29uX3BsdXJhbF9jb25z dGFudHxTZWN0aW9uIDIuMi42KSksIFRoaXMgcHJvcG9zaXRpb24gaW1wbGllcyAKCl5zdSdvaSBk YSB6byd1IGxlIGNtYW5hIGRhIGJhIGNsYXh1XgoKd2hpY2ggbWVhbnMgdGhhdCB0aGVyZSBpcyBh IHJlZmVyZW50IG9mICJ3aGF0IGlzIGxhY2tlZCBieSB0aGUgbW91bnRhaW4iIGluIHRoZSB1bml2 ZXJzZSBvZiBkaXNjb3Vyc2UuCgpUaGUgc3RyYW5nZW5lc3MgY29tZXMgZnJvbSB0aGUgZmFjdCB0 aGF0IHgyIG9mIHtjbGF4dX0gX19hcHBhcmVudGx5X18gbWVhbnMgbm9uLWV4aXN0ZW5jZS4gV2Ug Y2FuIGludGVycHJldCBpdCBjb25zaXN0ZW50bHkgdGhhdCB7Y2xheHV9IG1lYW5zIG9ubHkgdGhh dCB0aGUgcmVmZXJlbnQgb2YgeDIgaXMgbm90IHBsYWNlZCBhdCB0aGUgcmVmZXJlbnQgb2YgeDEs IGFuZCBpdCBzYXlzIG5vdGhpbmcgYWJvdXQgZXhpc3RlbmNlIGluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2UuIAoKCgohISEjIHpvJ2UgaXMgYSBwbHVyYWwgY29uc3RhbnQKCkFzc3VtaW5nIHRo YXQge3pvJ2V9IGNhbiBiZSBhbnkgb2YgZnJlZSB2YXJpYWJsZSwgYm91bmQgcGx1cmFsIHZhcmlh YmxlIG9yIHBsdXJhbCBjb25zdGFudCwgdGhlIGxhbmd1YWdlIHdvdWxkIGJlIG1vcmUgcmVhc29u YWJsZSBmcm9tIGEgbG9naWNhbCBwb2ludCBvZiB2aWV3LgoKSG93ZXZlciwgdGhpcyBpZGVhIHdh cyBjbGVhcmx5IGRlbmllZCBpbiBbaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL3RvcGljL2xv amJhbi9SQXRFN1lrLWRxdy9kaXNjdXNzaW9ufHRoZSBkaXNjdXNzaW9uXS4gVGhhdCBpcyB0byBz YXksIHt6bydlfSBpcyBhbHdheXMgYSBwbHVyYWwgY29uc3RhbnQgYWNjb3JkaW5nIHRvIHRoZSBv ZmZpY2lhbCBpbnRlcnByZXRhdGlvbi4KCkkgd2lsbCBleGFtaW5lIHRoZXNlIGNvbmZsaWN0aW5n IGlkZWFzLCBhbmQgdHJ5IHRvIHNvbHZlIHNvbWUgcHJvYmxlbXMgY2F1c2VkIGJ5IHRoZSBvZmZp Y2lhbCBpbnRlcnByZXRhdGlvbiB0aGF0IHt6bydlfSBpcyBhIHBsdXJhbCBjb25zdGFudC4KCgoK ISEhISMgSWYgem8nZSBjb3VsZCBiZSBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZQoKSSB3aWxsIGxp c3QgdXAgaGVyZSBtZXJpdHMgYW5kIGRlbWVyaXRzIG9mIGFzc3VtaW5nIHRoYXQge3pvJ2V9IGlu IG5vIGNvbnRleHQgaXMgYSBmcmVlIHZhcmlhYmxlLCBhbmQgdGhhdCB0aGUgY29udGV4dCBkZXRl cm1pbmVzIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGJhc2VkIG9uIHdoaWNoIHt6bydlfSBp cyByZWdhcmRlZCBhcyBzdWJzdGl0dXRlZCBmb3IgYnkgYSBwbHVyYWwgY29uc3RhbnQsIG9yIGJv dW5kIGJ5IGEgcGx1cmFsIHF1YW50aWZpZXIuCgoKCiEhISEhIyBNZXJpdHMKClVuZGVyIHRoaXMg YXNzdW1wdGlvbiwgdGhlcmUgaXMgbm8gbmVlZCB0byBleGNsdWRlIHRoZSBjYXNlIFBBPTAgb2Yg e2xvIFBBIGJyb2RhfSwgb3IgZ2l2ZSBpdCBhbiB1bm9mZmljaWFsIGRlZmluaXRpb24gYXMgZGlz Y3Vzc2VkIGluICgofCNDYW5ub3Rfc2F5X3plcm98U2VjdGlvbiAzLjEuMi4xKSkuIEl0IGlzIGJl Y2F1c2UgaWYge2xvIFBBIGJyb2RhfSBpbiBubyBjb250ZXh0IGlzIGEgZnJlZSB2YXJpYWJsZSwg d2UgY2FuIGludGVycHJldCBpdCwgd2hlbiBhIGNvbnRleHQgaXMgZ2l2ZW4sIGFzIHN1YnN0aXR1 dGVkIGZvciBieSBhIHBsdXJhbCBjb25zdGFudCBvciBib3VuZCBieSBhIHBsdXJhbCBxdWFudGlm aWVyIGxpa2Uge3N1J29pIGRhfSBpbiB0aGUgY2FzZSBvZiBQQT4wOyB3ZSBjYW4gaW50ZXJwcmV0 IGl0IGFzIGJvdW5kIGJ5IHtuYWt1IHN1J29pIGRhfSBpbiB0aGUgY2FzZSBvZiBQQT0wIGFzIHdl bGwuCgoKClRoaXMgYXNzdW1wdGlvbiBtYWtlcyB0aGUgaW50ZXJwcmV0YXRpb24gY2xvc2VyIHRv IG5hdHVyYWwgbGFuZ3VhZ2VzIG5vdCBvbmx5IGluIHRoZSBjYXNlIFBBPTAgYnV0IGFsc28gaW4g dGhlIGNhc2UgUEE+MC4gRm9yIGV4YW1wbGUsIAoKXmxvIGNpIHhhbnRvIGN1IHppbGthbmN1IGxp IGNpIGxvIHhhbnRvXgoKVGhlIGxhc3Qge2xvIHhhbnRvfSBpcyBhIHVuaXQgb2YgY291bnRpbmcu IEl0IGlzIG5hdHVyYWwgdG8gaW50ZXJwcmV0IGl0IGFzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxl IHF1YW50aWZpZWQgYnkgIjEiIHJhdGhlciB0aGFuIGEgcGx1cmFsIGNvbnN0YW50LCB3aGljaCBz aG91bGQgcmVmZXIgdG8gc29tZXRoaW5nLiBJZiB3ZSBpbnRlcnByZXQgaXQgYXMgYSBib3VuZCBw bHVyYWwgdmFyaWFibGUsIHdlIHNob3VsZCBjb25zaWRlciB0aGUgcmVsYXRpdmUgb3JkZXIgd2l0 aCB0aGUgb3RoZXIgYm91bmQgdmFyaWFibGVzIGFuZCB7bmFrdX0uIFdlIGNhbiBoYW5kbGUgdGhl IG9yZGVyIGZyZWVseSBieSBwdXR0aW5nIHRoZSBhcmd1bWVudHMgaW4gcHJlbmV4LgoKCgpNb3Jl b3ZlciwgdGhpcyBhc3N1bXB0aW9uIGVtYm9kaWVzIHRoZSBwcm9wZXJ0eSBvZiBuYXR1cmFsIGxh bmd1YWdlcyB0aGF0IHRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIG5vIGNvbnRl eHQgaXMgZ2VuZXJhbGx5IGluZGVmaW5pdGUuIEJ5IGludGVycHJldGluZyB0aGF0IHt6bydlfSBp biBubyBjb250ZXh0IGlzIGEgZnJlZSB2YXJpYWJsZSwgd2hpY2ggd2lsbCBiZSBzdWJzdGl0dXRl ZCBmb3IgYnkgYSBwbHVyYWwgY29uc3RhbnQgb3IgYm91bmQgYnkgYSBwbHVyYWwgcXVhbnRpZmll ciB3aGVuIGEgY29udGV4dCBpcyBnaXZlbiwgbmF0dXJhbCBpbnRlcnByZXRhdGlvbiBvZiBMb2pi YW4gc2VudGVuY2UgaXMgcG9zc2libGUgd2l0aG91dCBsb3NpbmcgbG9naWNhbCBhc3BlY3RzIGFu ZCBzdHJ1Y3R1cmFsIGJlYXV0eS4KCgoKISEhISEjIERlbWVyaXRzCgpCZWNhdXNlIHt6bydlfSBj YW4gYmUgYSBmcmVlIHZhcmlhYmxlLCBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBvciBhIHBsdXJh bCBjb25zdGFudCBkZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGEgc2luZ2xlIGJyaWRpIGRvZXMg bm90IGxldCBsaXN0ZW5lcnMgZGV0ZXJtaW5lIHdoaWNoIG9mIHRoZW0gaXMgdGhlIGN1cnJlbnQg e3pvJ2V9LCBvciB0aGUgdHJ1dGggdmFsdWUgb2YgdGhlIHByb3Bvc2l0aW9uLgoKSG93ZXZlciwg c3VjaCBhbiBhc3BlY3QgdGhhdCB0aGUgdHJ1dGggdmFsdWUgb2YgYSBwcm9wb3NpdGlvbiBnZW5l cmFsbHkgZGVwZW5kcyBvbiB0aGUgY29udGV4dCBpcyBhIGNvbW1vbiBwcm9wZXJ0eSB0byBhbGwg bmF0dXJhbCBsYW5ndWFnZXMuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBldmVuIGlmIHdlIHRha2Ug dGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGFsd2F5cyBhIHBsdXJh bCBjb25zdGFudCwgbGlzdGVuZXJzIGFyZSBvbmx5IGluZm9ybWVkIGJ5IHt6bydlfSB0aGF0IGEg Y2VydGFpbiB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgaXMgZ2l2ZW4uIFdpdGggbm8gY29udGV4dCwg dGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSB3aGF0IGlzIHRoZSB1bml2ZXJzZSBvZiBkaXNj b3Vyc2UuIFRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIG5vIGNvbnRleHQgaXMg aW5kZWZpbml0ZSBldmVuIHdpdGggdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uLgoKCgohISEh IyBQcm9ibGVtcyBjYXVzZWQgYnkgdGhlIGZhY3QgdGhhdCB6bydlIGlzIGEgcGx1cmFsIGNvbnN0 YW50IGFuZCB0aGUgY291bnRlci1tZWFzdXJlcwoKVGhlIG9mZmljaWFsIGludGVycHJldGF0aW9u IHRoYXQge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50IGNhdXNlcyB0aGUgZm9sbG93aW5nIHBy b2JsZW1zLgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgcGx1cmFsIHF1YW50aWZpY2F0aW9uIG9m IG5vbi1leGlzdGVuY2UKClJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb24gb2Yge2xvIG5vIGJyb2Rh fSBpcyBvZmZpY2lhbGx5IGV4Y2x1ZGVkIGZyb20gTG9qYmFuLiBUaGF0IGlzIHRvIHNheSwgTG9q YmFuIGNhbm5vdCBvZmZpY2lhbGx5IGRlYWwgd2l0aCB0aGUgZXhwcmVzc2lvbiAidGhlcmUgaXMg bm90IHdoYXQgaXMgc3Vic3RpdHV0ZWQgZm9yIHtkYX0iIGZvciBwbHVyYWwgdmFyaWFibGUgKHtu YWt1IHN1J29pIGRhfSksIHdoaWNoIGlzIG5hdHVyYWxseSBkZWFsdCB3aXRoIGJ5IHBsdXJhbCBx dWFudGlmaWNhdGlvbi4gSW4gb3JkZXIgdG8gZXhwcmVzcyB7bG8gbm8gYnJvZGF9IHdpdGggcmVh c29uYWJsZSBpbnRlcnByZXRhdGlvbiwgd2UgbmVlZCBhbiB1bm9mZmljaWFsIGludGVycHJldGF0 aW9uIGxpa2UgKCh8I0Nhbm5vdF9zYXlfemVyb3xTZWN0aW9uIDMuMS4yLjEpKS4KCgoKISEhISEj IENhbm5vdCBleHByZXNzIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgd2hpY2ggZG9lcyBub3Qgc3Bl Y2lmeSBhIHJlZmVyZW50CgpCZWNhdXNlIHRoZSBvZmZpY2lhbCBpbnRlcnByZXRhdGlvbiBkb2Vz IG5vdCBhbGxvdyB7bG8gUEEgYnJvZGF9IHRvIGJlIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIGRl cGVuZGluZyBvbiB0aGUgY29udGV4dCwgYW4gYXJndW1lbnQgdGhhdCBzaG91bGQgcmVmZXIgdG8g bm90aGluZywgYSB1bml0IG9mIGNvdW50aW5nIGZvciBleGFtcGxlLCBzaG91bGQgYmUgaW50ZXJw cmV0ZWQgYXMgYSBwbHVyYWwgY29uc3RhbnQsIHdoaWNoIHJlZmVycyB0byBzb21ldGhpbmcuIEZv ciBleGFtcGxlIAoKXmxvIGNpIHhhbnRvIGN1IHppbGthbmN1IGxpIGNpIGxvIHhhbnRvXgoKZm9y IHdoaWNoIHdlIGFyZSBjb21wZWxsZWQgdG8gaW50ZXJwcmV0IHRoYXQgdGhlcmUgaXMgdGhlICJF bGVwaGFudCBkZXMgQXJjaGl2ZXMiIGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGp1c3Qg bGlrZSB0aGUgIk3DqHRyZSBkZXMgQXJjaGl2ZXMiIChhbHRob3VnaCBpdCBoYXMgYWxyZWFkeSBm aW5pc2hlZCBpdHMgcm9sZSksIGluIG9yZGVyIHRvIHVzZSB7bG8geGFudG99IGFzIGEgdW5pdCBp biBhIHByb3Bvc2l0aW9uLgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgZWxlbWVudGFyeSBwYXJ0 aWNsZXMgd2l0aCBsbwoKQXMgbG9uZyBhcyB7bG8gYnJvZGF9IGlzIGludGVycHJldGVkIGFzIGEg cGx1cmFsIGNvbnN0YW50LCB0aGUgZm9sbG93aW5nIExvamJhbiBzZW50ZW5jZSBpcyBtZWFuaW5n bGVzczoKCgoKXmxvIGd1c2thJ3UgY3UgZ2F1IGptYWppIHNlcGknbyBsbyBsZW5qbyBnaSdlIHBh Z3JlIGxvIGZlbnJhfnBwfgoKfi9wcH4nJ1Bob3RvbnMgYXJlIGNvbmRlbnNlZCBieSBsZW5zZXMs IGFuZCBwYXNzIHRocm91Z2ggc2xpdHMuJydeCgoKCkFjdHVhbGx5LCBwaG90b25zIGFyZSBpbmRp dmlkdWFscywgYW5kIHdlIGNhbiBjb3VudCB0aGVtLCBidXQgd2UgY2Fubm90IGRpc3Rpbmd1aXNo IGVhY2ggb2YgdGhlbTogd2UgY2Fubm90IHJlZmVyIHRvIGEgc3BlY2lmaWMgcGhvdG9uLiBRdWFu dGlmaWNhdGlvbiBpcyBpbmRlZWQgc3VpdGFibGUgZm9yIGFyZ3VtZW50cyB0aGF0IHJlcHJlc2Vu dCBwYXJ0aWNsZXMgbGlrZSBwaG90b25zLiBIb3dldmVyLCBMb2piYW4gb2ZmaWNpYWxseSBkb2Vz IG5vdCBoYXZlIGEgcGx1cmFsIHF1YW50aWZpZXIsIGFuZCBjYW5ub3QgZXhwcmVzcyBxdWFudGlm aWNhdGlvbiBvZiAgc3VtdGkgdGhhdCBzYXRpc2ZpZXMgc2VsYnJpIGJvdGggY29sbGVjdGl2ZWx5 IGFuZCBkaXN0cmlidXRpdmVseS4gTW9yZW92ZXIsIGJlY2F1c2Uge2xvIGJyb2RhfSBpcyBvZmZp Y2lhbGx5IGFsd2F5cyBhIHBsdXJhbCBjb25zdGFudCwgdGhlcmUgaXMgbm8gcm9vbSB0byBpbnRl cnByZXQge2xvIGd1c2thJ3V9IGFzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlLiBJbiBvcmRlciB0 byBzb2x2ZSB0aGUgcHJvYmxlbSwgd2Ugc2hvdWxkIHVzZSBhbiB1bm9mZmljaWFsIHBsdXJhbCBx dWFudGlmaWVyIHtzdSdvaX0gc3VnZ2VzdGVkIGJ5ICgoeG9yeGVzfGxhIHhvcnhlcykpLgoKCgpe c3Unb2kgZGEgcG9pIGtlJ2EgZ3Vza2EndSBjdSBnYXUgam1hamkgc2VwaSdvIGxvIGxlbmpvIGdp J2UgcGFncmUgbG8gZmVucmFeCgoKCiEhISEhIyBIb3cgdG8gaW50ZXJwcmV0IGEgcHJldmFpbGlu ZyB2aWV3CgpUaGUgZm9sbG93aW5nIGV4YW1wbGUgaXMgZ2l2ZW4gb24gKChCUEZLIFNlY3Rpb246 IGdhZHJpfEJQRksncyBnYWRyaSBwYWdlKSk6CgoKCl5sbyBwYSBwaXhyYSBjdSBzZSB2YW1qaSBs byBraSdvIHZhbHNpfnBwfgoKfi9wcH4nJ09uZSBwaWN0dXJlIGlzIHdvcnRoIGEgdGhvdXNhbmQg d29yZHMuJycgXgoKCgpFdmVuIGluIHN1Y2ggYSBzZW50ZW5jZSB0aGF0IHNlZW1zIGEgcHJldmFp bGluZyB2aWV3LCB7bG8gcGEgcGl4cmF9IGFuZCB7bG8ga2knbyB2YWxzaX0gYXJlIGludGVycHJl dGVkIGFzIHJlZmVycmluZyB0byBzb21ldGhpbmcuIFdlIHNob3VsZCBwcmVwYXJlIHNvbWUgcmVm ZXJlbnRzIG9mIHN1bXRpIG9mIGEgcHJldmFpbGluZyB2aWV3IGluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2UuCgoKCkludHVpdGlvbmFsbHkgc3BlYWtpbmcsIHdlIG1heSB1c2Uge2xvJ2V9IGlu c3RlYWQgb2Yge2xvfSwgYnV0IHdlIGNhbm5vdCB5ZXQgZXhwbGFpbiB7bG8nZX0gZnJvbSBhIGxv Z2ljYWwgcG9pbnQgb2YgdmlldyBiZWNhdXNlICgoQlBGSyBTZWN0aW9uOiBUeXBpY2Fsc3xhY3R1 YWxseSB0aGVyZSBpcyBubyBvZmZpY2lhbCBjb25jbHVzaW9uIGFib3V0IHJlbGF0aW9uIGJldHdl ZW4ge2xvJ2V9IGFuZCB7bG99KSkuCgoKCkFzIGEgbWV0aG9kIG9mIGF2b2lkaW5nIG1lbnRpb24g b2YgYSByZWZlcmVudCBpbiBhbiBleHByZXNzaW9uIG9mIHByZXZhaWxpbmcgdmlldywgd2UgbWF5 IHB1dCB0aGUgd2hvbGUgcHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlLiBJbiBmYWN0LCB0cnV0aCB2 YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIE5VIGNsYXVzZSBkb2VzIG5vdCBpbmZsdWVuY2UgdHJ1 dGggdmFsdWUgb2YgdGhlIG91dGVyIHByb3Bvc2l0aW9uIChyZWZlcmVudGlhbGx5IG9wYXF1ZTsg dGhpcyB0b3BpYyBpcyByZWxhdGVkIHRvIFtodHRwOi8vbG9qYmFuLmdpdGh1Yi5pby9jbGwvOS83 L3xDTEw5LjddKS4gSW4gb3RoZXIgd29yZHMsIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugb2Yg YSBwcm9wb3NpdGlvbiBpbiBOVSBjbGF1c2UgaXMgZGlmZmVyZW50IGZyb20gdGhlIHVuaXZlcnNl IG9mIGRpc2NvdXJzZSBvZiBhIHByb3Bvc2l0aW9uIG91dCBvZiBOVS4KCklmIHdlIGFjY2VwdCB0 aGlzIG1ldGhvZCwgdGhlIGV4YW1wbGUgYWJvdmUgd2lsbCBiZSBtb2RpZmllZCwgdXNpbmcge3Np J299IGZvciBleGFtcGxlLCBhcyBmb2xsb3dzOgoKCgpec2knbyBsbyBwYSBwaXhyYSBjdSBzZSB2 YW1qaSBsbyBraSdvIHZhbHNpIH5wcH4KCn4vcHB+JydJcyBhbiBpZGVhIHRoYXQgb25lIHBpY3R1 cmUgaXMgd29ydGggYSB0aG91c2FuZCB3b3Jkcy4nJ14KCgoKd2hlcmUgeDEgb2Yge3NpJ299IGlz IGltcGxpY2l0IHt6bydlfSwgd2hpY2ggaGFzIGEgcmVmZXJlbnQgaW4gdGhlIHVuaXZlcnNlIG9m IGRpc2NvdXJzZS4gQXMgYW4gaW50ZXJwcmV0YXRpb24gb2YgYSBwcmV2YWlsaW5nIHZpZXcsIHN1 cHBvc2luZyBhIHJlZmVyZW50IG9mIHgxIG9mIHtzaSdvfSBpcyBtb3JlIG5hdHVyYWwgdGhhbiBz dXBwb3NpbmcgYSByZWZlcmVudCBvZiB7bG8gcGEgcGl4cmF9IG9yIHtsbyBraSdvIHZhbHNpfS4K CihTdWNoIGEgYnJpZGkgd2l0aCBubyB0ZXJicmkgaXMgY2FsbGVkICJvYnNlcnZhdGl2ZSIgaW4g KChUaGUgQ29tcGxldGUgTG9qYmFuIExhbmd1YWdlKSksIGJ1dCB0aGlzIGludGVycHJldGF0aW9u IGlzIG5vdCBzdWl0YWJsZSBoZXJlLCBiZWNhdXNlIHRoaXMgaXMgbm90IHRoZSB1dHRlcmFuY2Ug dGhhdCBpcyBhbHdheXMgY2F1c2VkIGJ5IGEgc3BlY2lmaWMgc3RpbXVsdXMuKQoKCgohISEhISMg SG93IHRvIGV4cHJlc3MgZnJlZSB2YXJpYWJsZXMKCkFzIGEgY3VzdG9tLCBrbydWL2ZvJ1Ygc2Vy aWVzIG9mIEtPaEE0IGFyZSB1c2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIGRlZmluaXRpb25zIG9m IHdvcmRzIG9yIHNvbWV0aGluZy4gSG93ZXZlciwgdGhleSBhcmUgYWN0dWFsbHkgcGx1cmFsIGNv bnN0YW50cy4KCklmIHdlIGFiYW5kb24gdGhpcyBjdXN0b20sIHtrZSdhfSBhbmQge2NlJ3V9IGFy ZSBzdWl0YWJsZSBmb3IgZXhwcmVzc2lvbiB3aXRoIGZyZWUgdmFyaWFibGVzIChvcGVuIHNlbnRl bmNlKSwgYmVjYXVzZSB0aGUgdHJ1dGggdmFsdWUgb2YgYnJpZGkgaW4gd2hpY2gge2tlJ2F9IG9y IHtjZSd1fSBpcyB1c2VkIGlzIGluZGVmaW5pdGUuIAoKSW4gYSBicmlkaSBpbiB3aGljaCB7a2Un YX0gYXBwZWFycyB0d28gdGltZXMgb3IgbW9yZSwgdGhlc2Uge2tlJ2F9cyBhcmUgcmVnYXJkZWQg YXMgcmVwcmVzZW50aW5nIGFuIGlkZW50aWNhbCBzdW10aToKCl5kYSBwb2kga2UnYSBneSB4bHVy YSBrZSdhIGN1IHBhbmNpIGxvIGthJ2Ugc2UgY2l0a2F+cHB+Cgp+L3Bwfn4tLX4gKChsbyBudSBi aW54bykpXgoKT24gdGhlIG90aGVyIGhhbmQsIGluIGEgYnJpZGkgaW4gd2hpY2gge2NlJ3V9IGFw cGVhcnMgdHdvIHRpbWVzIG9yIG1vcmUsIHRoZXNlIHtjZSd1fXMgYXJlIG5vdCBuZWNlc3Nhcmls eSByZWdhcmRlZCBhcyByZXByZXNlbnRpbmcgYW4gaWRlbnRpY2FsIHN1bXRpOgoKXmxvIG1hbXRh IGpvJ3UgbG8gbWVuc2kgY3Ugc2lteHUgbG8ga2EgY2UndSBjaXNtYSBmYSdhIGNlJ3V+cHB+Cgp+ L3Bwfn4tLX4gKChsbyBudSBiaW54bykpXgoKQ29uc2lkZXJpbmcgdGhlc2UgcHJvcGVydGllcywg aW4gb3JkZXIgdG8gZXhwcmVzcyBhbiBvcGVuIHNlbnRlbmNlIHdpdGggZnJlZSB2YXJpYWJsZXMg aW4gbm8gY29udGV4dCwge2NlJ3V9IGlzIG1vcmUgY29udmVuaWVudCB0aGFuIHtrZSdhfSB3aGlj aCBoYXMgcmVzdHJpY3Rpb24gb2YgaWRlbnRpY2FsIHN1bXRpLgoKXmNlJ3UgY2UndSBjaXRrYX5w cH4KCn4vcHB+JydBIGVhdHMgQi4nJyAoT3BlbiBzZW50ZW5jZSwgdHJ1dGggdmFsdWUgaW5kZWZp bml0ZS4pXgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Cldpa2luZXVyb3RpYyBtYWlsaW5nIGxpc3QKV2lraW5ldXJvdGljQGxvamJhbi5vcmcKaHR0cDov L21haWwubG9qYmFuLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3dpa2luZXVyb3RpYwo=