Received: from localhost ([::1]:43214 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1Wrcb1-0000Mu-4v; Mon, 02 Jun 2014 17:28:55 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:38439 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1Wrcaq-0000Mi-8k for wikineurotic@lojban.org; Mon, 02 Jun 2014 17:28:52 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Mon, 02 Jun 2014 17:28:44 -0700 From: "Apache" Date: Mon, 02 Jun 2014 17:28:44 -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 00:28 UTC Comment: fix a phrase 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 b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMDA6MjggVVRDCkNvbW1lbnQ6 IGZpeCBhIHBocmFzZQoKWW91IGNhbiB2aWV3IHRoZSBwYWdlIGJ5IGZvbGxvd2luZyB0aGlzIGxp bms6CiAKaHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvZ2FkcmklM0ElMjBhbiUyMHVub2ZmaWNp YWwlMjBjb21tZW50YXJ5JTIwZnJvbSUyMGElMjBsb2dpY2FsJTIwcG9pbnQlMjBvZiUyMHZpZXcK CllvdSBjYW4gdmlldyBhIGRpZmYgYmFjayB0byB0aGUgcHJldmlvdXMgdmVyc2lvbiBieSBmb2xs b3dpbmcgdGhpcyBsaW5rOiAKaHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvdGlraS1wYWdlaGlz dG9yeS5waHA/cGFnZT1nYWRyaSUzQSUyMGFuJTIwdW5vZmZpY2lhbCUyMGNvbW1lbnRhcnklMjBm cm9tJTIwYSUyMGxvZ2ljYWwlMjBwb2ludCUyMG9mJTIwdmlldyZjb21wYXJlPTEmb2xkdmVyPTE5 Jm5ld3Zlcj0yMAoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqClRoZSBjaGFuZ2VzIGluIHRoaXMgdmVyc2lvbiBmb2xsb3cgYmVsb3cs IGZvbGxvd2VkIGFmdGVyIGJ5IHRoZSBjdXJyZW50IGZ1bGwgcGFnZSB0ZXh0LgoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKCistKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBA IC1MaW5lczogNDcyLTQ3NiBjaGFuZ2VkIHRvICtMaW5lczogNDcyLTQ3NiBAQAorLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpUaGV5IGNv cnJlc3BvbmQgcmVzcGVjdGl2ZWx5IHRvIHtsb30sIHtsb2l9LCB7bG8naX0gb2YgZ2FkcmkuIFRo ZXkgY29ubmVjdCB0d28gc3VtdGk6IHtqbyd1fSBmb3JtcyBhIHBsdXJhbCBjb25zdGFudCwge2pv aX0gYSBub24tZGlzdHJpYnV0aXZlIHBsdXJhbCBjb25zdGFudCwge2NlfSBhIHBsdXJhbCBjb25z dGFudCB0aGF0IHJlZmVycyB0byBzZXQocykgdGhhdCBjb25zaXN0KHMpIG9mIHRoZSBzdW10aSB0 aGF0IHtjZX0gY29ubmVjdHMuIEluIHRoZSBFbmdsaXNoIGRlZmluaXRpb24gb2Yge2pvaX0gb2Yg QlBGSywgIm5vbi1kaXN0cmlidXRpdmUiIGlzIG1lbnRpb25lZC4gVGhpcyBmYWN0IGFsc28gc3Vw cG9ydHMgdGhlIHN1Z2dlc3Rpb24gaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1 X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSkgdG8gYWRkICJ7bG9pIGJyb2RhfSBpbXBsaWVzIHRo YXQgcmVmZXJlbnQgb2YgeDEgb2YgYnJvZGEgY29sbGVjdGl2ZWx5IGFuZCBub24tZGlzdHJpYnV0 aXZlbHkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIiB0byB0aGUgZGVmaW5pdGlvbiBvZiB7bG9pfS4K Ci0gRXZlbiBpZiBfX1hfXyBvciBfX1lfXyBhcmUgYm91bmQgdmFyaWFibGVzLCB0aGVzZSBjb25u ZWN0aXZlcyBmb3JtIGNvbnN0YW50cy4gSW4gdGhpcyBjYXNlLCBpdCBpcyBub3QgZGV0ZXJtaW5l ZCB3aGV0aGVyIHRoZSBmb3JtZWQgY29uc3RhbnRzIGRlcGVuZCBvbiBfX1hfXyBhbmQgX19ZX18s IG9yIHRoZXkgYXJlIGNvbW1vbiB0byBhbGwgX19YX18gYW5kIF9fWV9fIGluIHRoZWlyIGRvbWFp bnMuIFNlZSAoKHwjQm91bmRfdmFyaWFibGVzX2FuZF9jb25zdGFudHNfaW5fYV9zdGF0ZW1lbnR8 U2VjdGlvbiAzLjIuMikpIGZvciBkZXRhaWwuCisgRXZlbiBpZiBfX1hfXyBvciBfX1lfXyBhcmUg Ym91bmQgdmFyaWFibGVzLCB0aGVzZSBjb25uZWN0aXZlcyBmb3JtIGNvbnN0YW50cy4gSW4gdGhp cyBjYXNlLCBpdCBpcyBub3QgZGV0ZXJtaW5lZCB3aGV0aGVyIHRoZSBmb3JtZWQgY29uc3RhbnRz IGRlcGVuZCBvbiBfX1hfXyBhbmQgX19ZX18sIG9yIHRoZXkgYXJlIGNvbW1vbiB0byBhbGwgcmVm ZXJlbnRzIGluIHRoZSBkb21haW5zIG9mIF9fWF9fIGFuZCBfX1lfXy4gU2VlICgofCNCb3VuZF92 YXJpYWJsZXNfYW5kX2NvbnN0YW50c19pbl9hX3N0YXRlbWVudHxTZWN0aW9uIDMuMi4yKSkgZm9y IGRldGFpbC4KCkJlY2F1c2UgdGhleSBhcmUgY21hdm8gaW4gc2VsbWEnbyBKT0ksIHRoZXkgY2Fu IGNvbm5lY3Qgd2hhdCBhcmUgbm90IHN1bXRpLCBidXQgdGhlIG1lYW5pbmdzIGluIHRoaXMgdXNh Z2UgYXJlIG5vdCBvZmZpY2lhbGx5IGRlZmluZWQuIFRoZXkgY2FuIGZvcm0gYWxzbyBmb3JldGhv dWdodCBjb25uZWN0aXZlIHtKT0kgZ2kgX19YX18gZ2kgX19ZX199LiBXaGVuIHRoZSBmb3JldGhv dWdodCBjb25uZWN0aXZlcyBhcmUgdXNlZCBmb3Igc3VtdGksIHRoZXkgZm9ybSB0aGUgc2FtZSBj b25zdGFudHMgYXMgdGhlIGFmdGVydGhvdWdodCB1c2FnZSBkZWZpbmVkIGFib3ZlLgoKCgoKKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK VGhlIG5ldyBwYWdlIGNvbnRlbnQgZm9sbG93cyBiZWxvdy4KKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCigoQlBGSyBTZWN0aW9uOiBn YWRyaXxCUEZLJ3MgZ2FkcmkgcGFnZSkpIGNvbnRhaW5zIGV4cHJlc3Npb25zIG1pc2xlYWRpbmcg cGVvcGxlIHdobyBoYXZlIGF0IGxlYXN0IGEgbGl0dGxlIGtub3dsZWRnZSBvZiBsb2dpYyAoW2h0 dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC90b3BpYy9sb2piYW4vUkF0RTdZay1kcXcvZGlzY3Vz c2lvbnxkaXNjdXNzaW9uXSkuCgpJIHdpbGwgbWFrZSBoZXJlIGEgY29tbWVudGFyeSBvbiBCUEZL J3MgZ2Fkcmkgc28gdGhhdCBpdCBpcyB1bmRlcnNvb2QgYnkgdGhlbSBjb3JyZWN0bHkuCgoKCntt YWtldG9jfQoKCgohISMgR2xvc3NhcnkKCldlIHdpbGwgdXNlIHRoZSBmb2xsb3dpbmcgdGVybXMg aW4gdGhpcyBjb21tZW50YXJ5LgoKO19fYXJndW1lbnQgKHN1bXRpKV9fOiBTeW1ib2wgdGhhdCBy ZWZlcnMgdG8gYSByZWZlcmVudCwgb3IgdGhhdCBhbm90aGVyIGFyZ3VtZW50IGNhbiBiZSBzdWJz dGl0dXRlZCBmb3IuCgpeR3JhbW1hdGljYWxseSwgYWxsIHRoZXNlIGFyZSBzdW10aTogYXJndW1l bnRzLCB7emknb30gd2hpY2ggcmVtb3ZlcyBhIHBsYWNlIGZvciBhbiBhcmd1bWVudCwge2tvfSB3 aGljaCByZWZlcnMgdG8gbGlzdGVuZXIocykgYW5kIGZvcm1zIGltcGVyYXRpdmUsIHttYX0gd2hp Y2ggZm9ybXMgaW50ZXJyb2dhdGl2ZSB0byBhc2sgd2hpY2ggc3VtdGkgbWFrZXMgdGhlIHN0YXRl bWVudCB0cnVlLCBzdW10aSBhbmQgcmVsYXRpdmUgY2xhdXNlcyAoe3pvJ2Ugbm9pIGJyb2RhfS4u LiksIHF1YW50aWZpZXIgYW5kIHN1bXRpL3NlbGJyaSAoe25vZGF9LCB7Y2kgbG8gYnJvZGF9LCB7 cm8gYnJvZGF9Li4uKSAsIHN1bXRpIGNvbm5lY3RlZCBieSBjb25uZWN0aXZlcyAoe2tvJ2EgLmUg a28nZX0uLi4pLiBIb3dldmVyLCBpbiB0aGlzIGFydGljbGUsICJzdW10aSIgcmVmZXJzIHRvIGFu IGFyZ3VtZW50IG9mIGxvZ2ljIHJlcHJlc2VudGVkIGluIExvamJhbi5eCgo7X191bml2ZXJzZSBv ZiBkaXNjb3Vyc2VfXzogU2V0IG9mIGFsbCByZWZlcmVudHMgb2YgYXJndW1lbnRzLiBJdCBpcyBu YXR1cmFsbHkgYSB1bml2ZXJzZSB0aGF0IGlzIGRpc2N1c3NlZC4gQSB1bml2ZXJzZSBvZiBkaXNj b3Vyc2UgZGVwZW5kcyBvbiB0aGUgY29udGV4dC4KCjtfX2NvbnN0YW50X186IEFyZ3VtZW50IHRo YXQgcmVmZXJzIHRvIGEgcmVmZXJlbnQuCgo7X192YXJpYWJsZV9fOiBBcmd1bWVudCBhcyBhIHBs YWNlIGhvbGRlci4gSXQgZG9lcyBub3QgcmVmZXIgdG8gYW55dGhpbmcuIEl0IGlzIHRvIGJlIHN1 YnN0aXR1dGVkIGZvci4gVmFyaWFibGUgb3RoZXIgdGhhbiBib3VuZCB2YXJpYWJsZSB0aGF0IHdp bGwgYmUgZGVmaW5lZCBiZWxvdyBpcyBjYWxsZWQgX19mcmVlIHZhcmlhYmxlX18uIFRoZSB0cnV0 aCB2YWx1ZSBvZiBhIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMgYSBmcmVlIHZhcmlhYmxlIGlzIGlu ZGVmaW5pdGUuIFN1Y2ggYSBzZW50ZW5jZSBpcyBjYWxsZWQgX19vcGVuIHNlbnRlbmNlX18uCgpe SW4gTG9qYmFuLCB7a2UnYX0gYW5kIHtjZSd1fSBhcmUgYWx3YXlzIGZyZWUgdmFyaWFibGVzLiBB IHNlbnRlbmNlIGluIE5PSS1jbGF1c2Ugb3IgTlUtY2xhdXNlIHdpdGgge2NlJ3V9IGlzIG9wZW4u IChBIHNlbnRlbmNlIGluIE5VLWNsYXVzZSB3aXRoIG5vIHtjZSd1fSBoYXMgYSB0cnV0aCB2YWx1 ZSwgYnV0IGVhY2ggb2YgdGhlIGluc2lkZSBhbmQgdGhlIG91dHNpZGUgb2YgTlUtY2xhdXNlIGhh cyBhbiBpbmRlcGVuZGVudCB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGFuZCB0aHVzIGVhY2ggb2Yg dGhlbSBoYXMgYW4gaW5kZXBlbmRlbnQgdHJ1dGggdmFsdWUgKGZvciBleGFtcGxlLCBzZWUgW2h0 dHA6Ly9kYWcuZ2l0aHViLmlvL2NsbC85LzcvfENMTDkuN10pLiBJbiBkZWZpbml0aW9ucyBvZiB3 b3JkcyBpbiBMb2piYW4sIGtvJ1YvZm8nViBzZXJpZXMge2tvJ2EsIGtvJ2UsIC4uLn0gb2Ygc2Vs bWEnbyBLT2hBNCBhcmUgdXNlZCBhcyBmcmVlIHZhcmlhYmxlcywgYnV0IGl0IGlzIG9ubHkgYSBj dXN0b20gZm9yIGNvbnZlbmllbmNlLiBBbGwgY21hdm8gb2YgS09oQTIsMyw0LDUsNiBhbmQge3pv J2V9IG9mIEtPaEE3IGFyZSBlc3NlbnRpYWxseSBjb25zdGFudHMuIENvbnNpZGVyaW5nIHRoZSBj YXNlIHRoYXQgYm90aCBjb25zdGFudHMgYW5kIGJvdW5kIHZhcmlhYmxlcyAodG8gYmUgZGVmaW5l ZCBiZWxvdykgYXBwZWFyIGluIGEgc3RhdGVtZW50LCAiY29uc3RhbnRzIiBhcmUgZ2VuZXJhbGx5 IGNvbnNpZGVyZWQgdG8gYmUgU2tvbGVtIGZ1bmN0aW9ucy4gU2VlICgofCNCb3VuZF92YXJpYWJs ZXNfYW5kX2NvbnN0YW50c19pbl9hX3N0YXRlbWVudHxTZWN0aW9uIDMuMi4yKSkgZm9yIGRldGFp bC5eCgo7X19xdWFudGlmeV9fOiBJbiBzdWJzdGl0dXRpbmcgcG9zc2libGUgYXJndW1lbnRzIG9u ZSBieSBvbmUgZm9yIGEgdmFyaWFibGUgaW4gYSBzZW50ZW5jZSwgY291bnQgdGhlIG51bWJlciBv ZiByZWZlcmVudHMgdGhhdCBtYWtlIHRoZSBzZW50ZW5jZSB0cnVlLCBhbmQgcHJlZml4IHRoZSBu dW1iZXIgdG8gdGhlIHZhcmlhYmxlLgoKO19fcXVhbnRpZmllcl9fOiBOdW1iZXIgdXNlZCBmb3Ig cXVhbnRpZmljYXRpb24uIEJlc2lkZXMge3BhfSwge3JlfSwge3ZlaSBueSBzdSdpIHBhICh2ZSdv KX0gYW5kIHNvIG9uLCB7cm99ICJhbGwiIGFuZCB7c3Unb30gInRoZXJlIGlzIG9uZSBvciBtb3Jl IiBhcmUgYWxzbyBxdWFudGlmaWVycy4KCjtfX2JvdW5kIHZhcmlhYmxlX186IFZhcmlhYmxlIHBy ZWZpeGVkIGJ5IGEgcXVhbnRpZmllci4gQXMgYSByZXN1bHQgb2YgcXVhbnRpZmljYXRpb24sIHRo ZXJlIGlzIG5vIHJvb20gZm9yIHN1YnN0aXR1dGluZyBhbiBhcmJpdHJhcnkgYXJndW1lbnQgZm9y IHRoZSB2YXJpYWJsZS4KCl5JbiBMb2piYW4sIHtkYX0sIHtkZX0gYW5kIHtkaX0gYXJlIGJvdW5k IHZhcmlhYmxlcy4gRm9yIGV4YW1wbGUsIHtybyBkYSB6byd1IGRhIGJyb2RhfSBtZWFucyAiRm9y IGFsbCB7ZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIHtkYSBicm9kYX0gaXMgdHJ1 ZS4iIEluIHRoZSBjYXNlIHRoYXQge2RhfSwge2RlfSBvciB7ZGl9IGFyZSBub3QgcHJlZml4ZWQg YnkgYSBxdWFudGlmaWVyLCB0aGV5IGFyZSByZWdhcmRlZCBhcyBpbXBsaWNpdGx5IHByZWZpeGVk IGJ5IHtzdSdvfS5eCgo7X19kb21haW5fXzogUmFuZ2Ugb2YgcmVmZXJlbnRzIHRvIGJlIHN1YnN0 aXR1dGVkIGZvciBhIHZhcmlhYmxlLCBvciByYW5nZSB0byBiZSBjb25zaWRlcmVkIGluIGNvdW50 aW5nIHJlZmVyZW50cyBpbiBxdWFudGlmaWNhdGlvbi4KCl5JbiBMb2piYW4sIGEgZG9tYWluIG9m IGEgYm91bmQgdmFyaWFibGUgY2FuIGJlIGxpbWl0ZWQgd2l0aCBhbiBleHByZXNzaW9uIHtkYSBw b2kuLi59LiBGb3IgZXhhbXBsZSwge3JvIGRhIHBvaSBrZSdhIGJyb2RhIHpvJ3UgZGEgYnJvZGV9 IG1lYW5zICJGb3IgYWxsIHtkYX0gdGhhdCBhcmUgeDEgb2Yge2Jyb2RhfSBpbiB0aGUgdW5pdmVy c2Ugb2YgZGlzY291cnNlLCB7ZGEgYnJvZGV9IGlzIHRydWUuIiBJZiB7cG9pLi4ufSBkb2VzIG5v dCBmb2xsb3cge2RhfSwgdGhlIGRvbWFpbiBpcyB0aGUgd2hvbGUgdW5pdmVyc2Ugb2YgZGlzY291 cnNlLl4KCjtfX3RhdXRvbG9neV9fOiBTZW50ZW5jZSB0aGF0IGlzIGFsd2F5cyB0cnVlIGluZGVw ZW5kZW50bHkgb2YgY29udGV4dC4ge2tvJ2EgZHUga28nYX0gZXRjLgoKO19fbG9naWNhbCBheGlv bXNfXzogU2VudGVuY2VzIHNlbGVjdGVkIGZyb20gdGF1dG9sb2dpZXMgc28gdGhhdCBhbGwgdGF1 dG9sb2dpZXMgYXJlIHByb3ZlZCBmcm9tIHRoZW0gd2l0aCBydWxlcyBvZiBpbmZlcmVuY2UgdGhh dCBhcmUgZGVmaW5lZC4KCgoKISEjIFBsdXJhbCBxdWFudGlmaWNhdGlvbgoKSW4gb3JkZXIgdG8g dW5kZXJzdGFuZCBhcmd1bWVudHMgb2YgTG9qYmFuIGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZp ZXcsIGl0IGlzIGVzc2VudGlhbCB0byBoYXZlIGEga25vd2xlZGdlIG9mIF9fcGx1cmFsIHF1YW50 aWZpY2F0aW9uX18uCgoKClBsdXJhbCBxdWFudGlmaWNhdGlvbiB3YXMgaW52ZW50ZWQgaW4gb3Jk ZXIgdG8gZmFjaWxpdGF0ZSBleHByZXNzaW9uIG9mIHByb3Bvc2l0aW9uIHRoYXQgaXMgbWVhbmlu Z2Z1bCBvbmx5IHdoZW4gdGhlIHJlZmVyZW50IG9mIGFuIGFyZ3VtZW50IGlzIHBsdXJhbC4gCgpe Cgo7RXhhbXBsZTogUGVvcGxlIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZS5eCgpMb2dpY2FsbHks IHRoaXMgc2VudGVuY2UgaXMgYSBwcm9wb3NpdGlvbiB0aGF0IGNvbnNpc3RzIG9mIGEgY29uc3Rh bnQgInBlb3BsZSIgYW5kIHRocmVlIHByZWRpY2F0ZXMgImdhdGhlcmVkIiAiY29va2VkIiBhbmQg ImF0ZSIuIFRoZSBwcmVkaWNhdGVzIGFyZSBkaWZmZXJlbnQgZnJvbSBlYWNoIG90aGVyIGluIHBy b3BlcnR5IG9mIHRyZWF0aW5nIHRoZSBhcmd1bWVudC4gV2Ugd2lsbCBkaXNjdXNzIHByZWNpc2Vs eSBob3cgdGhlIGFyZ3VtZW50IGluIHRoZSBzZW50ZW5jZSBpcyB0cmVhdGVkLgoKCgohISEjIENv bGxlY3Rpdml0eSBhbmQgZGlzdHJpYnV0aXZpdHkKCgoKQ29uc2lkZXIgdGhlIGV4cHJlc3Npb24g InBlb3BsZSBnYXRoZXJlZCI6IGJhc2VkIG9uIHRoZSBtZWFuaW5nIG9mIHRoZSBwcmVkaWNhdGUg ImdhdGhlcmVkIiwgdGhlIGNvbnN0YW50ICJwZW9wbGUiIHNob3VsZCByZWZlciB0byBwbHVyYWwg cGVvcGxlLgoKV2hlbiByZWZlcmVudHMgb2YgYW4gYXJndW1lbnQgc2F0aXNmeSBhIHByZWRpY2F0 ZSBhcyBjb2xsZWN0aXZlIHBsdXJhbCB0aGluZ3MgbGlrZSB0aGlzLCB3ZSBleHByZXNzIGl0IGFz ICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fY29sbGVjdGl2ZWx5X18iLCBv ciAidGhlIGFyZ3VtZW50IGhhcyBfX2NvbGxlY3Rpdml0eV9fIi4KCgoKQXMgZm9yIGVhY2ggb2Yg dGhlIHBsdXJhbCBwZW9wbGUgcmVmZXJyZWQgdG8gYnkgdGhlIGNvbnN0YW50LCAgZWFjaCBzZW50 ZW5jZSBzdWNoIHRoYXQgIkFsaWNlIGdhdGhlcmVkIiwgIkJvYiBnYXRoZXJlZCIgYW5kIHNvIG9u IGlzIG5vbnNlbnNlLgoKV2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3Rh bnQgY2Fubm90IHNhdGlzZnkgYSBwcmVkaWNhdGUgYWxvbmUsIHdlIGV4cHJlc3MgaXQgYXMgImFu IGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNhdGUgX19ub24tZGlzdHJpYnV0aXZlbHlfXyIu CgoKCk9uIHRoZSBvdGhlciBoYW5kLCBpbiB0aGUgZXhwcmVzc2lvbiAicGVvcGxlIGF0ZSIsIGFs dGhvdWdoIHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMgdG8gcGx1cmFsIHBlb3BsZSwgdGhl IHByZWRpY2F0ZSAiYXRlIiBpcyBzYXRpc2ZpZWQgYnkgZWFjaCBwZXJzb24uIFRoYXQgaXMgdG8g c2F5LCBlYWNoIHNlbnRlbmNlIHN1Y2ggdGhhdCAiQWxpY2UgYXRlIiwgIkJvYiBhdGUiIGFuZCBz byBvbiBpcyBtZWFuaW5nZnVsLgoKV2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEg Y29uc3RhbnQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGFsb25lLCB3ZSBleHByZXNzIGl0IGFzICJh biBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fZGlzdHJpYnV0aXZlbHlfXyIsIG9y ICJ0aGUgYXJndW1lbnQgaGFzIF9fZGlzdHJpYnV0aXZpdHlfXyIuCgoKCk1vcmVvdmVyLCBpZiB0 aGUgcHJlZGljYXRlICJlYXQiIG1lYW5zIGFuIGFjdCAicHV0IGZvb2QgaW4gYSBtb3V0aCwgYml0 ZSBpdCwgbGV0IGl0IHBhc3MgdGhyb3VnaCBhbiBlc29waGFndXMgYW5kIHNlbmQgaXQgdG8gYSBz dG9tYWNoIiwgaXQgaXMgaGFyZGx5IGNvbnNpZGVyZWQgdGhhdCAicGVvcGxlIiBzYXRpc2ZpZXMg ImVhdCIgY29sbGVjdGl2ZWx5LiBFdmVuIGlmIGEgcGVyc29uIGhlbHBzIGFub3RoZXIgdG8gZWF0 LCB0aGUgaGVscGVyIGlzIG5vdCBlYXRlciwgYW5kIHRoZSBlYXRlciBpcyBub3QgY29sbGVjdGl2 ZSBwZW9wbGUgYnV0IGFuIGluZGl2aWR1YWwuIAoKV2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVk IHRvIGJ5IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgYSBwcmVkaWNhdGUgYXMgY29sbGVjdGl2 ZSBwbHVyYWwgdGhpbmdzLCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMg YW4gcHJlZGljYXRlIF9fbm9uLWNvbGxlY3RpdmVseV9fIi4KCihIb3dldmVyLCBpdCBpcyBwb3Nz aWJsZSB0byBpbnRlcnByZXQgdGhlIHByZWRpY2F0ZSAiZWF0IiBhcyBpbnZvbHZpbmcgY29sbGVj dGl2aXR5LiBGb3IgZXhhbXBsZSwgaWYgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgInB1dCBmb29kIGF3 YXkgZnJvbSBvdXRzaWRlIHRvIGluc2lkZSBvZiBib2R5Iiwgd2UgbWF5IHNheSAiY29sbGVjdGl2 ZWx5IGVhdCIgdG8gZXhwcmVzcyBhbiBldmVudCB0aGF0IHBlb3BsZSBlYXQgYW5kIGNvbnN1bWUg YSBtYXNzIG9mIGZvb2QgdG9nZXRoZXIuKQoKCgpUaGVyZSBhcmUgYWxzbyBwcmVkaWNhdGVzIHRo YXQgYWxsb3cgYm90aCBwcm9wZXJ0aWVzICJjb2xsZWN0aXZpdHkiIGFuZCAiZGlzdHJpYnV0aXZp dHkiLgoKIlBlb3BsZSBjb29rZWQiIG1heSBtZWFuIHRoYXQgcGx1cmFsIHBlb3BsZSBrbmVhZCBw YXN0ZSBvZiBwaXp6YSB0b2dldGhlciwgYW5kIHRoYXQgZWFjaCBvZiB0aGVtIGlzIGluIGNoYXJn ZSBvZiBjYWtlcyBvciBwb3QtYXUtZmV1LiBJbiB0aGlzIGNhc2UsIHRoZSBjb25zdGFudCAicGVv cGxlIiByZWZlcnMgdG8gcGx1cmFsIHBlb3BsZSwgYW5kIHRoZXkgY29va2VkIHBpenphIGNvbGxl Y3RpdmVseSwgY2FrZXMgYW5kIHBvdC1hdS1mZXUgZGlzdHJpYnV0aXZlbHkuIFRoZSBjb25zdGFu dCAicGVvcGxlIiB0aHVzIHNhdGlzZmllcyB0aGUgcHJlZGljYXRlICJjb29rZWQiIGNvbGxlY3Rp dmVseSBhbmQgZGlzdHJpYnV0aXZlbHkuCgoKCk5vdGUgdGhhdCB0aGUgY29uc3RhbnQgInBlb3Bs ZSIgcmVmZXJzIHRvIHdoYXQgaXMgY29tbW9uIHRvIHRocmVlIHByZWRpY2F0ZXMgImdhdGhlcmVk IiwgImNvb2tlZCIgYW5kICJhdGUiLiBObyBtYXR0ZXIgaWYgYSBjb25zdGFudCBzYXRpc2ZpZXMg cHJlZGljYXRlcyBjb2xsZWN0aXZlbHkgb3IgZGlzdHJpYnV0aXZlbHksIHRoZSByZWZlcmVudCBp cyB0aGUgc2FtZS4KCgoKSWYgd2UgdXNlIGFuIGFyZ3VtZW50ICJhIHNldCBvZiBwZW9wbGUiIGlu IHRoZSBjYXNlIG9mIHNhdGlzZnlpbmcgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5LCBpdCBtaWdo dCBiZSBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhlIHByZWRpY2F0ZSAiZ2F0aGVyZWQiIHNvIHRo YXQgdGhlIGFyZ3VtZW50IHNhdGlzZmllcyBpdCwgYnV0IHRoZSBzYW1lIGFyZ3VtZW50IGNhbm5v dCBzYXRpc2Z5IHRoZSBwcmVkaWNhdGUgImF0ZSIsIGJlY2F1c2Ugd2UgY2FuIGhhcmRseSBzYXkg dGhhdCBhIHNldCBvZiBwZW9wbGUsIHdoaWNoIGlzIGFuIGFic3RyYWN0IGVudGl0eSwgcGVyZm9y bXMgImF0ZSIuCgoKClVzaW5nIHBsdXJhbCBjb25zdGFudHMgYW5kIHBsdXJhbCB2YXJpYWJsZXMg dGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zLCB3ZSBjYW4g ZXhwcmVzcyBwbHVyYWwgdGhpbmdzIGluIHRoZSBmb3JtIG9mIHByZWRpY2F0ZSBsb2dpYyB3aXRo b3V0IHVzaW5nIHNldHMuCgoKCiEhISMgUGx1cmFsIGNvbnN0YW50IGFuZCBwbHVyYWwgdmFyaWFi bGUKCkFuIGFyZ3VtZW50IHRoYXQgcmVmZXJzIHRvIHJlZmVyZW50IHdpdGhvdXQgaW50cm9kdWNp bmcgYSBub3Rpb24gb2Ygc2V0cywgd2l0aG91dCBkaXN0aW5ndWlzaGluZyBjb2xsZWN0aXZpdHkg YW5kIGRpc3RyaWJ1dGl2aXR5LCB3aXRob3V0IGRpc3Rpbmd1aXNoaW5nIHBsdXJhbGl0eSBhbmQg c2luZ3VsYXJpdHksIGlzIGNhbGxlZCBfX3BsdXJhbCBjb25zdGFudF9fLgoKQSB2YXJpYWJsZSBm b3Igd2hpY2ggYSBwbHVyYWwgY29uc3RhbnQgY2FuIGJlIHN1YnN0aXR1dGVkIGlzIGNhbGxlZCBf X3BsdXJhbCB2YXJpYWJsZV9fLgoKUXVhbnRpZnlpbmcgYSBwbHVyYWwgdmFyaWFibGUgaXMgY2Fs bGVkIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18uIEEgcXVhbnRpZmllciB1c2VkIGZvciBwbHVy YWwgcXVhbnRpZmljYXRpb24gaXMgY2FsbGVkIF9fcGx1cmFsIHF1YW50aWZpZXJfXy4gQSBwbHVy YWwgdmFyaWFibGUgcHJlZml4ZWQgd2l0aCBhIHBsdXJhbCBxdWFudGlmaWVyIGlzIGNhbGxlZCBh IF9fYm91bmQgcGx1cmFsIHZhcmlhYmxlX18uCgoKCiEhISEjIG1lIGFuZCBqbyd1CgpXZSBpbnRy b2R1Y2UgcmVsYXRpb25zIGJldHdlZW4gcGx1cmFsIGNvbnN0YW50cyBhbmQgcGx1cmFsIHZhcmlh Ymxlczoge21lfSBhbmQge2pvJ3V9LgoKCgp8fAoKWCBtZSBZIChtZSd1KSB+aHN+fH5oc34gWCBp cyBhbW9uZyBZCgp8fAoKWCBhbmQgWSByZXByZXNlbnQgaGVyZSBwbHVyYWwgY29uc3RhbnRzIG9y IHBsdXJhbCB2YXJpYWJsZXMuIEEgY2x1c3RlciB7bWUgWSAobWUndSl9IGlzIGEgc2VsYnJpIGlu IExvamJhbiBncmFtbWFyLiB7bWUndX0gaXMgYW4gZWxpZGFibGUgdGVybWluYXRvciBvZiBzdHJ1 Y3R1cmUgYmVnaW5uaW5nIHdpdGgge21lfS4KCgoKe21lfSBoYXMgdGhlIGZvbGxvd2luZyBwcm9w ZXJ0aWVzIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cyBYLCBZIGFuZCBaOgoKIyBYIG1lIFggKHJl ZmxleGl2aXR5KQoKIyBYIG1lIFkgaWplYm8gWSBtZSBaIGluYWphIFggbWUgWiAodHJhbnNpdGl2 aXR5KQoKIyBYIG1lIFkgaWplYm8gWSBtZSBYIGlqbyBYIGR1IFkgKGlkZW50aXR5KQoKVGhlIHBy b3BlcnR5IDMgbWVhbnMgdGhhdCB0aGUgaWRlbnRpdHkgYmV0d2VlbiByZWZlcmVudHMgb2YgWCBh bmQgWSBpcyByZXByZXNlbnRlZCB3aXRoIHttZX0sIGFzIGEgcmVsYXRpb24gdGhhdCB7WCBtZSBZ IGlqZWJvIFkgbWUgWH0uCgoKCnx8CgpYIGpvJ3UgWSB+aHN+fH5oc34gWCBhbmQgWQoKfHwKCntq byd1fSBjb21iaW5lcyB0d28gYXJndW1lbnRzIFggYW5kIFkgaW50byBvbmUgcGx1cmFsIGNvbnN0 YW50IG9yIG9uZSBwbHVyYWwgdmFyaWFibGUuCgoKCntqbyd1fSBoYXMgdGhlIGZvbGxvd2luZyBw cm9wZXJ0aWVzIHdpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cyBYIGFuZCBZOgoKIyBYIG1lIFggam8n dSBZCgojIFggam8ndSBZIGR1IFkgam8ndSBYCgojIFggam8ndSBYIGR1IFgKClRoZSBwcm9wZXJ0 eSAyIG1lYW5zIHRoYXQgdGhlIHJlZmVyZW50IG9mIHRoZSB3aG9sZSBhcmd1bWVudCBkb2VzIG5v dCB2YXJ5IHdoZW4gdHdvIGFyZ3VtZW50cyBjb21iaW5lZCBieSB7am8ndX0gYXJlIGludGVyY2hh bmdlZCB3aXRoIGVhY2ggb3RoZXIuIFRoZSBwcm9wZXJ0eSAzIG1lYW5zIHRoYXQge2pvJ3V9IGRv ZXMgbm90IGFkZCBhbnkgcmVmZXJlbnQgd2hlbiBpdCBjb21iaW5lcyBhbiBhcmd1bWVudCB3aXRo IGl0c2VsZi4KCgoKVXNpbmcge2pvJ3V9LCB0aGUgZm9sbG93aW5nIGV4cHJlc3Npb24gaXMgcG9z c2libGU6CgpeCgo7RXhhbXBsZTogQiBhbmQgQyBnYXRoZXJlZCwgY29va2VkIGFuZCBhdGUuCgo7 OiBieSBqbyd1IGN5IGptYWppIGdpJ2UganVrcGEgZ2knZSBjaXRrYV4KCkVhY2ggb2Yge2J5fSBh bmQge2N5fSBpcyBhIHBsdXJhbCBjb25zdGFudC4KCgoKVGhlIHByZWRpY2F0ZSB7anVrcGF9IChj b29rKSBjYW4gYmUgaW50ZXJwcmV0ZWQgY29sbGVjdGl2ZWx5IGFuZC9vciBkaXN0cmlidXRpdmVs eSwgYnV0IHRoZSBwbHVyYWwgY29uc3RhbnQge2J5IGpvJ3UgY3l9IHNheXMgbm90aGluZyBhYm91 dCB3aGV0aGVyIGl0IHNhdGlzZmllcyB7anVrcGF9IGNvbGxlY3RpdmVseSBhbmQvb3IgZGlzdHJp YnV0aXZlbHkuIElmIHdlIHdhbnQgdG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZXkgY29va2VkICJj b2xsZWN0aXZlbHkiLCB3ZSBzYXkge2J5IGpvaSBjeX0gdXNpbmcge2pvaX0gdGhhdCB3aWxsIGJl IGRpc2N1c3NlZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9qb191X2pvaV9jZV9hbmRfZ2Fkcml8 U2VjdGlvbiAzLjQpKSwgb3Ige2x1J28gYnkgam8ndSBjeX0gdXNpbmcge2x1J299IHRoYXQgd2ls bCBiZSBkaXNjdXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5k X2dhZHJpfFNlY3Rpb24gMy4zKSkuIENvbnRyYXN0aXZlbHksIGlmIHdlIHdhbnQgdG8gbWFrZSBl eHBsaWNpdCB0aGF0IHRoZXkgY29va2VkICJkaXN0cmlidXRpdmVseSIsIHdlIHNheSAge2x1J2Eg Ynkgam8ndSBjeX0gdXNpbmcge2x1J2F9IHRoYXQgd2lsbCBiZSBkaXNjdXNzZWQgaW4gKCh8I1Jl bGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSkuIEhv d2V2ZXIsIHRoZXNlIGFyZ3VtZW50cyB0aGF0IHNheXMgZXhwbGljaXRseSBjb2xsZWN0aXZpdHkg YW5kL29yIGRpc3RyaWJ1dGl2aXR5IGFyZSBub3QgYWx3YXlzIGNvbW1vbmx5IHVzZWQgZm9yIG90 aGVyIHByZWRpY2F0ZXMgbGlrZSB7am1haml9IG9yIHtjaXRrYX0uCgoKClRoZSBkaWFncmFtIGJl bG93IHNob3dzIHJlbGF0aW9ucyBjb25zdHJ1Y3RlZCB3aXRoIHttZX0gYW5kIHtqbyd1fSByZXBy ZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGgsIGluIHdoaWNoIHRoZSB2ZXJ0aWNlcyByZXBy ZXNlbnQgcGx1cmFsIGNvbnN0YW50cy4KCgoKe2ltZyBmaWxlSWQ9IjciIHRodW1iPSJ5IiByZWw9 ImJveFtnXSJ9CgoKCiEhISEjIEluZGl2aWR1YWwKClJlZmVyZW50IG9mIGEgcGx1cmFsIGNvbnN0 YW50IGlzIG5vdCBuZWNlc3NhcmlseSBwbHVyYWw6IGEgcGx1cmFsIGNvbnN0YW50IGNhbiByZWZl ciB0byBvbmUgaW5kaXZpZHVhbC4KCl9fQW4gaW5kaXZpZHVhbF9fIGlzIGRlZmluZWQgYXMgZm9s bG93czoKCnx8CgpfX1ggaXMgYW4gaW5kaXZpZHVhbF9fIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5o c34gcm8nb2kgZGEgcG9pIGtlJ2EgbWUgWCB6byd1IFggbWUgZGEKCnx8CgoKCndoZXJlIF9fcm8n b2lfXyBpcyBhbiBleHBlcmltZW50YWwgY21hdm8gcHJvcG9zZWQgYnkgKCh4b3J4ZXN8bGEgeG9y eGVzKSksIHdoaWNoIGlzIGEgcGx1cmFsIHF1YW50aWZpZXIgbWVhbmluZyAiYWxsIi4gIHtybydv aSBkYX0gaXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUgbWVhbmluZyAiZm9yIGFsbCB0aGF0IGNh biBiZSBzdWJzdGl0dXRlZCBmb3Ige2RhfSIuIFRoaXMgZGVmaW5pdGlvbiBtZWFucyB0aGF0IFgg aXMgY2FsbGVkIGFuIGluZGl2aWR1YWwgd2hlbiB0aGUgY29uZGl0aW9uICJmb3IgYWxsIHtkYX0g dGhhdCBhcmUgYW1vbmcgWCwgWCBpcyBhbW9uZyB7ZGF9IiBpcyBzYXRpc2ZpZWQuIEluIG90aGVy IHdvcmRzLCAiaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgbm90aGluZyBvdGhlciB0aGFu IHtYfSBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIHtkYX0gc3VjaCB0aGF0IHtYIG1lIGRhfSIgaXMg ZXhwcmVzc2VkIGJ5ICJYIGlzIGFuIGluZGl2aWR1YWwiLgoKCgpXaGVuIGVhY2ggb2YgWCBhbmQg WSBpcyBhbiBpbmRpdmlkdWFsIGFuZCBYIGlzIG5vdCBlcXVhbCB0byBZLCB7WCBqbyd1IFl9IGlz IGNhbGxlZCBfX2luZGl2aWR1YWxzX18uIFdoZW4gZWFjaCBvZiBYIGFuZCBZIGlzIGFuIGluZGl2 aWR1YWwgb3IgaW5kaXZpZHVhbHMsIHtYIGpvJ3UgWX0gaXMgY2FsbGVkIGluZGl2aWR1YWxzIGFz IHdlbGwuCgoKCiEhISEjIERpZmZlcmVuY2UgYmV0d2VlbiBwbHVyYWwgYW5kIHNpbmd1bGFyCgpB IHBsdXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byBhIHNpbmdsZSBpbmRpdmlkdWFsIGlzIGNh bGxlZCBhIF9fc2luZ3VsYXIgY29uc3RhbnRfXy4KCgoKVW5sZXNzIFg9WSBhbmQgWCBpcyBhbiBp bmRpdmlkdWFsLCBubyBtYXR0ZXIgd2hldGhlciBlYWNoIG9mIFggYW5kIFkgaXMgcGx1cmFsIG9y IHNpbmd1bGFyLCB7WCBqbyd1IFl9IGlzIG5vdCBhIHNpbmd1bGFyIGNvbnN0YW50LiBJdCBpcyBi ZWNhdXNlIAoKXlggbWUgWCBqbyd1IFkgaWplbmFpIFggam8ndSBZIG1lIFheCgpob2xkcyB0cnVl LCBhbmQgdGhlbiB7WCBqbyd1IFl9IGRvZXMgbm90IHNhdGlzZnkgdGhlIGNvbmRpdGlvbiBvZiBh biBpbmRpdmlkdWFsIHtybydvaSBkYSBwb2kga2UnYSBtZSBYIGpvJ3UgWSB6byd1IFggam8ndSBZ IG1lIGRhfS4KCgoKISEhISMgQm91bmQgc2luZ3VsYXIgdmFyaWFibGUKCldoZW4gdGhlIGRvbWFp biBvZiBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBpcyByZXN0cmljdGVkIHRvIHdoYXQgaXMgYW4g aW5kaXZpZHVhbCwgdGhlIHZhcmlhYmxlIGlzIGNhbGxlZCBfX2JvdW5kIHNpbmd1bGFyIHZhcmlh YmxlX18uIEEgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUgY2Fubm90IHRha2UgbW9yZSB0aGFuIG9u ZSBpbmRpdmlkdWFsIHZhbHVlIGF0IGEgdGltZS4KCntybyBkYX0gKGZvciBhbGwge2RhfSkgYW5k IHtzdSdvIGRhfSAodGhlcmUgaXMgYXQgbGVhc3Qgb25lIHtkYX0pLCB3aGljaCBhcmUgb2ZmaWNp YWxseSBkZWZpbmVkIGluIExvamJhbiwgYXJlIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlcy4gVGhl eSBjYW4gYmUgZGVmaW5lZCB3aXRoIGJvdW5kIHBsdXJhbCB2YXJpYWJsZXMgYXMgZm9sbG93czoK Cnx8CgpybyBkYSB+aHN+fH5oc34gcm8nb2kgZGEgcG9pIHJvJ29pIGRlIHBvaSBkZSBtZSBkYSB6 byd1IGRhIG1lIGRlCgpzdSdvIGRhIH5oc358fmhzfiBzdSdvaSBkYSBwb2kgcm8nb2kgZGUgcG9p IGRlIG1lIGRhIHpvJ3UgZGEgbWUgZGUKCnx8CgpfX3N1J29pX18gaXMgYW4gZXhwZXJpbWVudGFs IGNtYXZvIHByb3Bvc2VkIGJ5ICgoeG9yeGVzfGxhIHhvcnhlcykpLCBhbmQgaXMgYSBwbHVyYWwg cXVhbnRpZmllciBtZWFuaW5nICJ0aGVyZSBpcy9hcmUiLiBOb3RlIHRoYXQge3N1J29pfSBpcyBf X25vdF9fICJhdCBsZWFzdCBvbmUiLiB7c3Unb2kgZGF9IGlzIGEgYm91bmQgcGx1cmFsIHZhcmlh YmxlIG1lYW5pbmcgInRoZXJlIGlzL2FyZSB7ZGF9Ii4KCgoKISEhISMgV2hhdCBpcyBuZWl0aGVy IGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzCgpSZWZlcmVudCBvZiBhIHBsdXJhbCBjb25z dGFudCBpcyBub3QgbmVjZXNzYXJpbHkgYW4gaW5kaXZpZHVhbCBvciBpbmRpdmlkdWFscy4gCgpJ dCBpcyBwb3NzaWJsZSB0byBkaXNjdXNzIGEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIHN1Y2ggdGhh dCByZWZlcmVudCBvZiBhIHBsdXJhbCBjb25zdGFudCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwg bm9yIGluZGl2aWR1YWxzLgoKCgpGb3IgZXhhbXBsZSwgY29uc2lkZXIgc3VjaCBhIHVuaXZlcnNl IG9mIGRpc2NvdXJzZSBpbiB3aGljaCB0aGUgZm9sbG93aW5nIHByb3Bvc2l0aW9uIGhvbGRzIHRy dWUuCgpecm8nb2kgZGEgcG9pIGtlJ2EgbWUga28nYSBrdSdvIHN1J29pIGRlIHpvJ3UgZGUgbWUg ZGEgaWplbmFpIGRhIG1lIGRlIH4tLX4gQ29uZGl0aW9uXzFeCgpJbiBvdGhlciB3b3JkcywgaW4g dGhpcyB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGZvciBhbGwgWCBzdWNoIHRoYXQge1ggbWUga28n YX0sIHRoZXJlIGlzIGFsd2F5cyBZIHN1Y2ggdGhhdCB7WSBtZSBYfSBhbmQgbm90IHtYIG1lIFl9 LgoKCgo7VGhlb3JlbTogSW4gYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugd2hlcmUgQ29uZGl0aW9u XzEgaXMgdHJ1ZSwge2tvJ2F9IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVh bHMuCgoKCjtQcm9vZjogU3VwcG9zZSB7a28nYX0gaXMgYW4gaW5kaXZpZHVhbC4gRnJvbSB0aGUg ZGVmaW5pdGlvbiBvZiAiYW4gaW5kaXZpZHVhbCI6Cgpecm8nb2kgZGEgcG9pIGtlJ2EgbWUga28n YSB6byd1IGtvJ2EgbWUgZGEgfi0tfiBTdXBwb3NpdGlvbl8yXgoKUmVwbGFjZSB7cm8nb2kgZGF9 IHdpdGgge25ha3Ugc3Unb2kgZGEgbmFrdX06CgpebmFrdSBzdSdvaSBkYSBwb2kga2UnYSBtZSBr bydhIGt1J28gbmFrdSB6byd1IGtvJ2EgbWUgZGEgfi0tfiBTdXBwb3NpdGlvbl8yLTFeCgpNb3Zl IHRoZSBpbm5lci1tb3N0IHtuYWt1fSBpbnRvIHRoZSBwcm9wb3NpdGlvbjoKCl5uYWt1IHN1J29p IGRhIHBvaSBrZSdhIG1lIGtvJ2Egem8ndSBuYWt1IGtvJ2EgbWUgZGEgfi0tfiBTdXBwb3NpdGlv bl8yLTJeCgpSZXBsYWNlIHtzdSdvaSBkYSBwb2l9IHdpdGgge2lqZX0gYW5kIG1vdmUgaW50byB0 aGUgcHJvcG9zaXRpb246CgpebmFrdSBzdSdvaSBkYSB6byd1IGRhIG1lIGtvJ2EgaWplIG5ha3Ug a28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9uXzItM14KClJlcGxhY2Uge2lqZSBuYWt1fSB3aXRo IHtpamVuYWl9OgoKXm5ha3Ugc3Unb2kgZGEgem8ndSBkYSBtZSBrbydhIGlqZW5haSBrbydhIG1l IGRhIH4tLX4gU3VwcG9zaXRpb25fMi00XgoKQnkgdGhlIHdheSwgZnJvbSBhIHByb3BlcnR5IG9m IHttZX0sCgpea28nYSBtZSBrbydhIF4KCmlzIGFsd2F5cyB0cnVlLiB7a28nYX0gaXMgdGhlcmVm b3JlIGluIHRoZSBkb21haW4gb2Yge2RhfSBvZiBDb25kaXRpb25fMS4gUmVwbGFjZSB7cm8nb2kg ZGF9IG9mIENvbmRpdGlvbl8xIHdpdGgge2tvJ2F9LCBhbmQgaXQgdGh1cyBob2xkcyB0cnVlOgoK XnN1J29pIGRlIHpvJ3UgZGUgbWUga28nYSBpamVuYWkga28nYSBtZSBkZSB+LS1+IENvbmRpdGlv bl8xLTFeCgpDb25kaXRpb25fMS0xIGFuZCBTdXBwb3NpdGlvbl8yLTQgY29udHJhZGljdCBlYWNo IG90aGVyLgoKU3VwcG9zaXRpb25fMiBpcyB0aHVzIHJlamVjdGVkIGJ5IHJlZHVjdGlvIGFkIGFi c3VyZHVtLgoKSXQgbWVhbnMgdGhhdCB7a28nYX0gaXMgbm90IGFuIGluZGl2aWR1YWwuCgoKCk1v cmVvdmVyLCB3aGVuIHtrbydhfSBpcyBleHBhbmRlZCB0byB7QSBqbyd1IEJ9LCBmcm9tIGEgcHJv cGVydHkgb2Yge2pvJ3V9LCB0aGUgZm9sbG93aW5nIHByb3Bvc2l0aW9ucyBob2xkIHRydWU6Cgpe QSBtZSBrbydhfnBwfgoKfi9wcH5CIG1lIGtvJ2FeCgpFYWNoIG9mIEEgYW5kIEIgaXMgaW4gdGhl IGRvbWFpbiBvZiB7ZGF9IG9mIENvbmRpdGlvbl8xLiBDb25zaWRlcmluZyBzaW1pbGFybHkgdG8g Q29uZGl0aW9uXzEtMSwgbmVpdGhlciBBIG5vciBCIGlzIGFuIGluZGl2aWR1YWwuIHtrbydhfSBp cyB0aHVzIG5vdCBpbmRpdmlkdWFscy4KClEuRS5ELgoKCgpXaGVuIHtrbydhfSBpcyBuZWl0aGVy IGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLCB3aGF0IGFjdHVhbGx5IGRvZXMgaXQgcmVm ZXIgdG8/CgpXZSBtYXkgaW50ZXJwcmV0IHRoYXQgaXQgcmVmZXJzIHRvIHdoYXQgaXMgcmVmZXJy ZWQgdG8gYnkgYSBtYXRlcmlhbCBub3VuLCBmb3IgZXhhbXBsZS4KCkJ5IGEgc3BlYWtlciB3aG8g dGhpbmtzIHRoYXQgYSBjdXQtb2ZmIHBpZWNlIG9mIGJyZWFkIGlzIGFsc28gYnJlYWQsIGJyZWFk IGlzIHJlZ2FyZGVkIGFzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoK CltodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2xvamJhbi9SQXRFN1lrLWRxdy9wQ0dl WUNFOWwxUUp8KFJlbGF0ZWQgZGlzY3Vzc2lvbjogZm9yIHRoZSBjYXNlIG9mIHtrbydhfT17bG8g c2lkYm99LCBJIHdyb3RlIHRoZSBzYW1lIHByb29mIG9ubHkgaW4gTG9qYmFuLildCgoKCiEhISEj IEEgbG9naWNhbCBheGlvbSBvbiBwbHVyYWwgY29uc3RhbnQKClRoZSBmb2xsb3dpbmcgbG9naWNh bCBheGlvbSBpcyBnaXZlbiB0byBhbiBhcmJpdHJhcnkgcGx1cmFsIGNvbnN0YW50IEM6CgpeZ2Fu YWkgQyBicm9kYSBnaSBzdSdvaSBkYSB6byd1IGRhIGJyb2RhXgoKCgpJdCBtZWFucyAiaW4gYSB1 bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGlmIGEgcHJvcG9zaXRpb24gaW4gd2hpY2ggYSBwbHVyYWwg Y29uc3RhbnQgaXMgeDEgb2Yge2Jyb2RhfSBob2xkcyB0cnVlLCB0aGVyZSBpcyByZWZlcmVudCB0 aGF0IGlzIHgxIG9mIHticm9kYX0iLgoKCgpUaGF0IGlzIHRvIHNheSwgYW4gYXJndW1lbnQgdGhh dCBoYXMgbm8gcmVmZXJlbnQgaW4gYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgY2Fubm90IGJlIHJl cHJlc2VudGVkIGJ5IGEgcGx1cmFsIGNvbnN0YW50LiBBbiBhcmd1bWVudCB0aGF0IGhhcyBubyBy ZWZlcmVudCBpcyBleHByZXNzZWQgaW4gdGhlIGZvcm0ge25ha3Ugc3Unb2kgZGF9LCB3aGljaCBp cyBhIG5lZ2F0aW9uIG9mIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIHtzdSdvaSBkYX0gbWVhbmlu ZyAidGhlcmUgaXMvYXJlIi4KCgoKISEjIERlZmluaXRpb24gb2YgZ2FkcmkKCjtfX2xvX18gKExF KTogSXQgaXMgcHJlZml4ZWQgdG8gc2VsYnJpLCBhbmQgZm9ybXMgYSBwbHVyYWwgY29uc3RhbnQg dGhhdCByZWZlcnMgdG8gd2hhdCBzYXRpc2ZpZXMgeDEsIHRoZSBmaXJzdCBwbGFjZSBvZiB0aGUg c2VsYnJpLiBJZiBhIHF1YW50aWZpZXIgZm9sbG93cyB7bG99LCB0aGUgcXVhbnRpZmllciByZXBy ZXNlbnRzIHRoZSBjb3VudCBvZiBhbGwgdGhlIHJlZmVyZW50cyBvZiB0aGUgcGx1cmFsIGNvbnN0 YW50LiBJbiB0aGUgY2FzZSB0aGF0IGEgcXVhbnRpZmllciBmb2xsb3dzIHtsb30sIGEgc3VtdGkg bWF5IGZvbGxvdyBpdC4gSW4gdGhpcyBjYXNlLCBpdCBmb3JtcyBhIHBsdXJhbCBjb25zdGFudCB0 aGF0IHJlZmVycyB0byB3aGF0IGlzL2FyZSBhbW9uZyAnJ3N1bXRpJycuCgp8fAoKbG8gW1tQQV0g YnJvZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBicm9kYSBbW2dpJ2Ugemlsa2FuY3Ug bGkgUEEgbG8gYnJvZGFdIChrdSdvKSB+aHN+fH5oc34gd2hhdCBpcy9hcmUgYnJvZGEgW1t0aGF0 IGlzL2FyZSBQQSBpbiB0b3RhbF0KCmxvIFBBICcnc3VtdGknJyAoa3UpIH5oc358fmhzfiBsbyBQ QSBtZSAnJ3N1bXRpJycgKG1lJ3UpIChrdSkgfmhzfnx+aHN+IHdoYXQgaXMvYXJlIGFtb25nICcn c3VtdGknJywgYW5kIFBBIGluIHRvdGFsCgp8fAoKe2t1fSwge2t1J299LCB7bWUndX0gYXJlIGVs aWRhYmxlIHRlcm1pbmF0b3JzLgoKCgpQdXR0aW5nIGEgcXVhbnRpZmllciBhZnRlciBnYWRyaSBs aWtlIHtsbyBQQX0gaXMgY2FsbGVkIF9faW5uZXIgcXVhbnRpZmljYXRpb25fXywgYW5kIHRoZSBx dWFudGlmaWVyIGlzIGNhbGxlZCBfX2lubmVyIHF1YW50aWZpZXJfXy4gQWx0aG91Z2ggdGhlIHRl cm0gInF1YW50aWZ5IiBpcyBpbnZvbHZlZCwgaXQgaXMgZGlmZmVyZW50IGZyb20gcXVhbnRpZmlj YXRpb24gb2YgbG9naWMuIElubmVyIHF1YW50aWZpY2F0aW9uIGRvZXMgbm90IGludm9sdmUgY291 bnRpbmcgcmVmZXJlbnRzIG9mIGNvbnN0YW50cyB0aGF0IGNhbiBiZSBzdWJzdGl0dXRlZCBmb3Ig YSB2YXJpYWJsZSwgYnV0IGNvdW50aW5nIGFsbCB0aGUgcmVmZXJlbnRzIG9mIG9uZSBwbHVyYWwg Y29uc3RhbnQuIElubmVyIHF1YW50aWZpY2F0aW9uIHdpbGwgYmUgZGlzY3Vzc2VkIG1vcmUgcHJl Y2lzZWx5IGluICgofCNJbm5lcl9xdWFudGlmaWNhdGlvbnxTZWN0aW9uIDMuMSkpLgoKCgpPbiB0 aGUgb3RoZXIgaGFuZCwgcHV0dGluZyBhIHF1YW50aWZpZXIgYmVmb3JlIGdhZHJpLCBvciBiZWZv cmUgYSBzdW10aSBtb3JlIGdlbmVyYWxseSwgaXMgY2FsbGVkIF9fb3V0ZXIgcXVhbnRpZmljYXRp b25fXywgYW5kIHRoZSBxdWFudGlmaWVyIGlzIGNhbGxlZCBfX291dGVyIHF1YW50aWZpZXJfXy4g T3V0ZXIgcXVhbnRpZmljYXRpb24gd2lsbCBiZSBkaXNjdXNzZWQgbW9yZSBwcmVjaXNlbHkgaW4g KCh8I091dGVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4yKSkuCgoKCkFsbCBzdW10aSBmb3Jt ZWQgd2l0aCBnYWRyaSBhcmUgZGVmaW5lZCBzbyB0aGF0IHRoZXkgYXJlIGV4cGFuZGVkIGludG8g ZXhwcmVzc2lvbnMgd2l0aCB7em8nZX0uIFRoYXQgaXMgdG8gc2F5LCB0aGUgbW9zdCBnZW5lcmFs IHBsdXJhbCBjb25zdGFudCBpcyByZXByZXNlbnRlZCBieSBhIHNpbmdsZSB7em8nZX0uIEEgc3Vt dGkgZm9ybWVkIHdpdGggZ2FkcmkgaXMge3pvJ2V9IGFjY29tcGFuaWVkIGJ5IGFuIGV4cGxhbmF0 aW9uLgoKXgoKO0V4YW1wbGU6IFBlb3BsZSBnYXRoZXJlZCwgY29va2VkIGFuZCBhdGUuCgo7OiBs byBwcmVudSBjdSBqbWFqaSBnaSdlIGp1a3BhIGdpJ2UgY2l0a2FeCgoKCldoaWxlIHRoZSBwcmVk aWNhdGUge2p1a3BhfSAoY29vaykgY2FuIGJlIGludGVycHJldGVkIGNvbGxlY3RpdmVseSBhcyB3 ZWxsIGFzIGRpc3RyaWJ1dGl2ZWx5LCB0aGUgcGx1cmFsIGNvbnN0YW50IHtsbyBwcmVudX0gKHBl b3BsZSkgZG9lcyBub3Qgc2F5IGV4cGxpY2l0bHkgaWYgaXQgc2F0aXNmaWVzIHtqdWtwYX0gY29s bGVjdGl2ZWx5IG9yIGRpc3RyaWJ1dGl2ZWx5LiBJZiB3ZSB3YW50IHRvIHNheSBleHBsaWNpdGx5 IHRoYXQgdGhleSAiY29sbGVjdGl2ZWx5IiBjb29rZWQsIHdlIHVzZSB7bG9pfSwgd2hpY2ggd2ls bCBiZSBkaXNjdXNzZWQgbGF0ZXIsIGFuZCBzYXkge2xvaSBwcmVudX0uIENvbnRyYXN0aXZlbHks IGlmIHdlIHdhbnQgdG8gc2F5IGV4cGxpY2l0bHkgdGhhdCB0aGV5ICJkaXN0cmlidXRpdmVseSIg Y29va2VkLCB3ZSBzYXkge3JvIGxvIHByZW51fSB3aXRoIGFuIG91dGVyIHF1YW50aWZpY2F0aW9u LCBvciB7bHUnYSBsbyBwcmVudX0uIEhvd2V2ZXIsIGEgc3VtdGkgdGhhdCBzYXlzIGV4cGxpY2l0 bHkgY29sbGVjdGl2aXR5IG9yIGRpc3RyaWJ1dGl2aXR5IGlzIG5vdCBuZWNlc3NhcmlseSBhYmxl IHRvIGJlIHNoYXJlZCB3aXRoIG90aGVyIHByZWRpY2F0ZSBsaWtlIHtqbWFqaX0gb3Ige2NpdGth fS4KCgoKO19fbGVfXyAoTEUpOiB7bGUgYnJvZGF9IHJlZmVycyBfX3NwZWNpZmljYWxseV9fIHRv IGEgcmVmZXJlbnQgb2Yge2xvIGJyb2RhfSwgYW5kIF9fZXhwbGljaXRseSBleHByZXNzIHRoYXQg dGhlIHNwZWFrZXIgaGFzIHRoZSByZWZlcmVudCBpbiBtaW5kX18uIEl0cyBsb2dpY2FsIHByb3Bl cnR5IGlzIHRoZSBzYW1lIGFzIHRoYXQgb2Yge2xvfS4KCnx8CgpsZSBbW1BBXSBicm9kYSAoa3Up IH5oc358fmhzfiB6bydlIG5vaSBtaSBrZSdhIGRvIHNraWN1IGxvIGthIGNlJ3UgYnJvZGEgW1tn aSdlIHppbGthbmN1IGxpIFBBIGxvIGJyb2RhXSAoa3UnbykgCgpsZSBQQSAnJ3N1bXRpJycgKGt1 KSB+aHN+fH5oc34gbGUgUEEgbWUgJydzdW10aScnIChtZSd1KSAoa3UpCgp8fAoKCgo7X19sYV9f IChMQSk6IEl0IGlzIHByZWZpeGVkIHRvIHNlbGJyaSBvciBjbWV2bGEsIGFuZCBmb3JtcyBhIHBs dXJhbCBjb25zdGFudCB0aGF0IHJlZmVycyB0byB3aGF0IGlzIG5hbWVkIHRoZSBzZWxicmkgb3Ig Y21ldmxhIHN0cmluZy4gSXRzIGxvZ2ljYWwgcHJvcGVydHkgaXMgdGhlIHNhbWUgYXMgdGhhdCBv ZiB7bG99LgoKfHwKCmxhIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+aHN+IHpvJ2Ugbm9pIGx1IFtb UEFdIGJyb2RhIGxpJ3UgY21lbmUga2UnYSBtaSAoa3UnbykgCgpsYSBQQSAnJ3N1bXRpJycgKGt1 KSB+aHN+fH5oc34gem8nZSBub2kgbHUgUEEgc3VtdGkgbGkndSBjbWVuZSBrZSdhIG1pIChrdSdv KSAKCnx8CgoKCjtfX2xvaV9fIChMRSksIF9fbGVpX18gKExFKSwgX19sYWlfXyAoTEEpOiB7bG9p L2xlaS9sYWkgYnJvZGF9IHJlZmVycyB0byBhIHJlZmVyZW50IG9mIHtsby9sZS9sYSBicm9kYX0s IGFuZCBfX2V4cGxpY2l0bHkgZXhwcmVzcyB0aGF0IHRoZSByZWZlcmVudCBzYXRpc2ZpZXMgYSBw cmVkaWNhdGUgY29sbGVjdGl2ZWx5X18uCgp8fAoKbG9pIFtbUEFdIGJyb2RhIH5oc358fmhzfiBs byBndW5tYSBiZSBsbyBbW1BBXSBicm9kYQoKbGVpIFtbUEFdIGJyb2RhIH5oc358fmhzfiBsbyBn dW5tYSBiZSBsZSBbW1BBXSBicm9kYQoKbGFpIFtbUEFdIGJyb2RhIH5oc358fmhzfiBsbyBndW5t YSBiZSBsYSBbW1BBXSBicm9kYQoKbG9pIFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gZ3VubWEg YmUgbG8gUEEgJydzdW10aScnCgpsZWkgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBndW5tYSBi ZSBsZSBQQSAnJ3N1bXRpJycKCmxhaSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGd1bm1hIGJl IGxhIFBBICcnc3VtdGknJwoKfHwKCkJlY2F1c2Uge2xvaS9sZWkvbGFpfSBpcyB0aHVzIGRlZmlu ZWQgYnkgYW5vdGhlciBwbHVyYWwgY29uc3RhbnQge2xvIGd1bm1hIGJlIGxvL2xlL2xhfSwgaXQg ZG9lcyBub3QgcmVmZXIgZGlyZWN0bHkgdG8gcmVmZXJlbnQgb2Yge2xvIGJyb2RhfSBvciB7bG8g UEEgJydzdW10aScnfSwgYnV0IHJlZmVyZW50IG9mIHtsbyBndW5tYX0uIFRoZXJlZm9yZSwgZXZl biBpZiB7bG8gYnJvZGF9IG9yIHtsbyBQQSAnJ3N1bXRpJyd9IGlzIG5vdCBhbiBpbmRpdmlkdWFs LCB7bG9pIGJyb2RhfSBvciB7bG9pIFBBICcnc3VtdGknJ30gY2FuIGJlIGFuIGluZGl2aWR1YWwg e2xvIGd1bm1hfSB1bmRlciB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbjoKCl5ybydvaSBkYSBwb2kg a2UnYSBtZSBsbyBndW5tYSBiZSBsby9sZS9sYSBbW1BBXSBicm9kYSB6byd1IGxvIGd1bm1hIGJl IGxvL2xlL2xhIFtbUEFdIGJyb2RhIGN1IG1lIGRhfnBwfgoKfi9wcH5ybydvaSBkYSBwb2kga2Un YSBtZSBsbyBndW5tYSBiZSBsby9sZS9sYSBQQSAnJ3N1bXRpJycgem8ndSBsbyBndW5tYSBiZSBs by9sZS9sYSBQQSAnJ3N1bXRpJycgY3UgbWUgZGFeCgoKCjtfX2xvJ2lfXyAoTEUpLCBfX2xlJ2lf XyAoTEUpLCBfX2xhJ2lfXyAoTEEpOiB7bG8naS9sZSdpL2xhJ2kgYnJvZGF9IHJlZmVycyB0byBh IHNldCBvciBzZXRzIG9mIGluZGl2aWR1YWwocykgdGhhdCBjb25zdGl0dXRlKHMpIGEgcGx1cmFs IGNvbnN0YW50IHtsby9sZS9sYSBicm9kYX0uIEJlY2F1c2Uge2xvJ2kvbGUnaS9sYSdpfSBmb3Jt cyBhIHNldCBvciBzZXRzLCBpdCBpcyBkZWZpbmVkIG9ubHkgd2hlbiBpdHMvdGhlaXIgbWVtYmVy KHMpIHtsby9sZS9sYSBicm9kYX0gaXMvYXJlIGFuIGluZGl2aWR1YWwgb3IgaW5kaXZpZHVhbHMu IEEgc2V0IGl0c2VsZiBpcyBhbHdheXMgYW4gaW5kaXZpZHVhbCwgYW5kIHNldHMgYXJlIGFsd2F5 cyBpbmRpdmlkdWFsczogdGhlcmUgaXMgbm8gc2V0IHRoYXQgaXMgbm90IGFuIGluZGl2aWR1YWwu Cgp8fAoKbG8naSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gc2VsY21pIGJlIGxvIFtbUEFdIGJy b2RhCgpsZSdpIFtbUEFdIGJyb2RhIH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbGUgW1tQQV0gYnJv ZGEKCmxhJ2kgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsYSBbW1BBXSBicm9k YQoKbG8naSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsbyBQQSAnJ3N1bXRp JycKCmxlJ2kgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbGUgUEEgJydzdW10 aScnCgpsYSdpIFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gc2VsY21pIGJlIGxhIFBBICcnc3Vt dGknJwoKfHwKCkJlY2F1c2Uge2xvJ2kvbGUnaS9sYSdpfSBpcyBkZWZpbmVkIGJ5IGFub3RoZXIg cGx1cmFsIGNvbnN0YW50IHtsbyBzZWxjbWkgYmUgbG8vbGUvbGF9LCBpdCBkb2VzIG5vdCByZWZl ciBkaXJlY3RseSB0byByZWZlcmVudCBvZiB7bG8gYnJvZGF9IG9yIHtsbyBQQSAnJ3N1bXRpJyd9 LCBidXQgcmVmZXJlbnQgb2Yge2xvIHNlbGNtaX0uCgoKCkluIHNldCB0aGVvcnksIGFuIGVtcHR5 IHNldCBpcyBkZWZpbmVkIGFzIHtsbyBzZWxjbWkgYmUgbm8gZGF9LCBhbmQgYW4gZXhwcmVzc2lv biB7bG8gbm8gYnJvZGF9IGlzIG9mZmljaWFsbHkgbWVhbmluZ2xlc3MgKHNlZSAoKHwjSW5uZXJf cXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKS4gVGhpcyBpbXBsaWVzIHRoYXQgYW4gZW1wdHkg c2V0IGNhbm5vdCBiZSBleHByZXNzZWQgd2l0aCB7bG8naS9sZSdpL2xhJ2l9LiAKCgoKQWNjb3Jk aW5nIHRvIFtodHRwOi8vamJvdmxhc3RlLmxvamJhbi5vcmcvZGljdC9zZWxjbWl8amJvdmxhc3Rl XSwge3NlbGNtaX0gaXMgZGVmaW5lZCBhcyBmb2xsb3dzOnx8Cgp4MSBzZWxjbWkgeDIgfmhzfnx+ aHN+ID1jYSdlIH5oc358fmhzfiB4MSBzZSBjbWltYSBybyBsbyBtZSB4MiBtZSd1IGUgbm8gbG8g bmEgbWUgeDIgfHwKCklmIHdlIGFjY2VwdCB0aGlzIGRlZmluaXRpb24sIGEgc2V0IHJlZmVycmVk IHRvIGJ5IHtsbydpL2xlJ2kvbGEnaX0tc3VtdGkgY29uc2lzdHMgb2Ygb25seSB0aGUgcmVmZXJl bnQgb2Yge2xvL2xlL2xhIFtbUEFdIGJyb2RhfSBvciB7bG8vbGUvbGEgUEEgJydzdW10aScnfS4g Q29udHJhc3RpdmVseSwgaWYgd2UgZGVmaW5lIGl0IGFzIHtzZWxjbWl9PXtzZSBjbWltYX0sIHRo ZSBzZXQgbWF5IGluY2x1ZGUgd2hhdCBpcy9hcmUgb3RoZXIgdGhhbiB0aGUgcmVmZXJlbnQgb2Yg e2xvL2xlL2xhIFtbUEFdIGJyb2RhfSBvciB7bG8vbGUvbGEgUEEgJydzdW10aScnfS4gSXQgaXMg bm90IHlldCBvZmZpY2lhbGx5IGRldGVybWluZWQgd2hpY2ggaW50ZXJwcmV0YXRpb24gaXMgdG8g YmUgYWNjZXB0ZWQuCgoKCiEhISMgSW5uZXIgcXVhbnRpZmljYXRpb24KCigoQlBGSyBTZWN0aW9u OiBnYWRyaXxCUEZLIGRlZmluZXMgaW5uZXIgcXVhbnRpZmljYXRpb24pKSBhcyBmb2xsb3dzOgoK fHwKCmxvIFtbUEFdIGJyb2RhIH5oc358fmhzfiB6bydlIG5vaSBrZSdhIGJyb2RhIFtbZ2knZSB6 aWxrYW5jdSBsaSBQQSBsbyBicm9kYV0KCmxvIFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gUEEg bWUgJydzdW10aScnCgp8fAoKVGhhdCBpcyB0byBzYXksIGlubmVyIHF1YW50aWZpZXIgbWVhbnMg bnVtYmVyIG9mIHJlZmVyZW50IGNvdW50ZWQgYnkgdW5pdCB7bG8gYnJvZGF9IG9yIHtsbyBtZSAn J3N1bXRpJyd9IHRoYXQgaXMgeDMgb2Yge3ppbGthbmN1fS4gCgpIb3dldmVyLCBpbnN0ZWFkIG9m IHt6aWxrYW5jdX0sIHRoZSBtZWFuaW5nIG9mIHdoaWNoIGlzIHRvbyB2YWd1ZSBmb3IgZGVmaW5p dGlvbiwgW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3 L3hpMmg2QTE3Q3VzSnxhbiBpZGVhIG9mIHJlZGVmaW5pdGlvbiB1c2luZyB7bWVpfSB3YXMgc3Vn Z2VzdGVkXSBhcyBmb2xsb3dzOgoKCgo7QXhpb20gMTogcm8nb2kgZGEgc3UnbyBwYSBtZWkKCjtE ZWZpbml0aW9uOnx8CgooRDEpIGtvJ2Egc3UnbyBOIG1laSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+ aHN+IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2Egem8ndSBn ZSBkYSBzdSdvIE4tMSBtZWkgZ2luYWkgZGUgbWUgZGEKCihEMikga28nYSBOIG1laSB+aHN+fH5o c34gPWNhJ2Ugfmhzfnx+aHN+IGtvJ2Egc3UnbyBOIG1laSBnaSdlIG5haSBzdSdvIE4rMSBtZWkg CgooRDMpIGxvIFBBIGJyb2RhIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gem8nZSBub2kga2Un YSBQQSBtZWkgZ2knZSBicm9kYQoKfHwKCgoKVXNpbmcgdGhlc2UgZGVmaW5pdGlvbnMgYW5kIEF4 aW9tIDEsIHRoZSBmb2xsb3dpbmcgdGhlb3JlbSB3aWxsIGJlIHByb3ZlZC4KCl5JZiBhbmQgb25s eSBpZiB7a28nYSBwYSBtZWl9LCB7a28nYX0gaXMgYW4gaW5kaXZpZHVhbC5eCgoKCjtQcm9vZjog KEQyKSBpcwoKfHwKCmtvJ2EgTiBtZWkJfD18IGtvJ2Egc3UnbyBOIG1laSBnaSdlIG5haSBzdSdv IE4rMSBtZWkgCgoJCXw9fCBnZSBrbydhIHN1J28gTiBtZWkgLS0tLS0oUzEpCgoJCXwgfCBnaSBu YWt1IGtvJ2Egc3UnbyBOKzEgbWVpIC0tLS0tKFMyKQoKfHwKCkFwcGx5aW5nIChEMSkgdG8gKFMy KSwgCgp8fAoKKFMyKQkJfD18IG5ha3Ugc3Unb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBzdSdvaSBk ZSBwb2kgbWUga28nYSB6byd1IAoKCQl8IHwgZ2UgZGEgc3UnbyBOIG1laSAKCgkJfCB8IGdpbmFp IGRlIG1lIGRhCgoJCXw9fCBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBt ZSBrbydhIHpvJ3UKCgkJfCB8IG5ha3UgZ2UgZGEgc3UnbyBOIG1laSAKCgkJfCB8IGdpIG5ha3Ug ZGUgbWUgZGEKCgkJfD18IHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1l IGtvJ2Egem8ndQoKCQl8IHwgZ2FuYWkgZGEgc3UnbyBOIG1laSAKCgkJfCB8IGdpIGRlIG1lIGRh Cgp8fAoKKEQyKSBpcyB0aGVyZWZvcmUKCnx8CgprbydhIE4gbWVpCXw9fCBnZSAoUzEpIGdpIChT MikgCgoJCXw9fCBnZSBrbydhIHN1J28gTiBtZWkKCgkJfCB8IGdpIHJvJ29pIGRhIHBvaSBtZSBr bydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndQoKCQl8IHwgZ2FuYWkgZGEgc3UnbyBO IG1laSAKCgkJfCB8IGdpIGRlIG1lIGRhCgp8fAoKV2hlbiBOPTEsCgp8fAoKa28nYSBwYSBtZWkJ fD18IGdlIGtvJ2Egc3UnbyBwYSBtZWkKCgkJfCB8IGdpIHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1 J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndQoKCQl8IHwgZ2FuYWkgZGEgc3UnbyBwYSBtZWkg CgoJCXwgfCBnaSBkZSBtZSBkYSAKCnx8CgpCZWNhdXNlIG9mIEF4aW9tIDEsIGl0IGltcGxpZXMK Cnx8CgprbydhIHBhIG1laQl8PXwgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBw b2kgbWUga28nYSB6byd1IGRlIG1lIGRhCgp8fAoKVGhlIHJpZ2h0IHNpZGUgaW1wbGllcyB7cm8n b2kgZGEgcG9pIGtlJ2EgbWUga28nYSB6byd1IGtvJ2EgbWUgZGF9LCB3aGljaCBpcyB0aGUgY29u ZGl0aW9uIGZvciAie2tvJ2F9IGlzIGFuIGluZGl2aWR1YWwiLiBJdHMgY29udmVyc2UgaXMgYWxz byB0cnVlLgoKUS5FLkQuCgoKClRoZSBkaWFncmFtIGJlbG93IHNob3dzIGEgcHJvY2VkdXJlIG9m IGNvdW50aW5nIHNvbWV0aGluZyB1cCB0byBmb3VyIHJlcHJlc2VudGVkIHdpdGggYSBkaXJlY3Rl ZCBncmFwaC4gSW4gdGhpcyBkaWFncmFtLCBsb29wcyBzdWNoIGFzIHtYIG1lIFh9IGFyZSBvbWl0 dGVkIGZvciBzaW1wbGljaXR5LCB0aG91Z2ggdGhleSBleGlzdC4gQ291bnRpbmcgdXAgY29ycmVz cG9uZHMgdG8gc2VsZWN0aW5nIGEgc3ViZ3JhcGggb2YgYSBkaXJlY3RlZCBncmFwaCBmb3JtZWQg d2l0aCB7bWV9OiB0aGUgc3ViZ3JhcGggdGhhdCBoYXMgYSBmb3JtIG9mIHRyZWUgdGhhdCBpbmNs dWRlcyBhbGwgbGVhdmVzIChjb25zdGFudHMgZWFjaCBvZiB3aGljaCBpcyBhbiBpbmRpdmlkdWFs KSB0byBiZSBjb3VudGVkLCBmb3IgZXhhbXBsZSB0aGUgcGFydCBvZiBtYWdlbnRhIGNvbG9yIGlu IHRoZSBkaWFncmFtLgoKCgp7aW1nIGZpbGVJZD0iMTAiIHRodW1iPSJ5IiByZWw9ImJveFtnXSJ9 CgoKCiEhISEjIFJlcGVhdGluZyBpbm5lciBxdWFudGlmaWNhdGlvbgoKQmVjYXVzZSB7bG8gUEEg JydzdW10aScnfSBpcyBkZWZpbmVkLCB3ZSBjYW4gcmVwZWF0IGlubmVyIHF1YW50aWZpY2F0aW9u IHRvIGZvcm0gYW4gYXJndW1lbnQuCgpeCgo7RXhhbXBsZTogbG8gbXVsbm8ga2FyZHlncmkgY3Ug Z3VubWEgbG8gdm8gbG9pIHBhY2kga2FyZGEgfmhzfiAnJ0EgZnVsbCBkZWNrIGNvbnNpc3RzIG9m IGZvdXIgZ3JvdXBzIG9mIHRoaXJ0ZWVuIGNhcmRzLicnCgo7OiBzdSdvIGRhIHpvJ3UgbG9pIHJl IGxvJ2kgcm8gbW9rY2Egbm9pIHNlcGxpIHB5IG5vaSBtb2tjYSBrdSdvIGRhIGN1IHJlbGN1a3Rh aSB+aHN+ICcnVHdvIHNldHMgb2YgcG9pbnRzIHRoYXQgYXJlIGVxdWlkaXN0YW50IGZyb20gYSBw b2ludCBQIGlzIGEgZG91YmxlIGNpcmNsZS4nJ14KCgoKISEhISMgUHJvYmxlbXMgb24gaW5uZXIg cXVhbnRpZmljYXRpb24KCiEhISEhIyBDYW5ub3Qgc2F5IHplcm8KCgoKQmVjYXVzZSBhbiBhcmd1 bWVudCBmb3JtZWQgYnkgZ2FkcmkgaXMgYSBwbHVyYWwgY29uc3RhbnQsIHtsbyBicm9kYX0gaW1w bGllcyB7c3Unb2kgZGEgem8ndSBkYSBicm9kYX0gYWNjb3JkaW5nIHRvIHRoZSBsb2dpY2FsIGF4 aW9tIG9uIHBsdXJhbCBjb25zdGFudCBzaG93biBpbiAoKHwjQV9sb2dpY2FsX2F4aW9tX29uX3Bs dXJhbF9jb25zdGFudHxTZWN0aW9uIDIuMi42KSkuIFRoYXQgaXMgdG8gc2F5LCB0aGUgZXhwcmVz c2lvbiB7bG8gbm8gYnJvZGF9IGltcGxpZXMgInRoZXJlIGFyZSB3aGF0IGFyZSBicm9kYSwgd2hp Y2ggYXJlIGNvdW50ZWQgMCIsIHdoaWNoIHNlZW1zIG1lYW5pbmdsZXNzLgoKCgpUaGlzIG1lYW5z IHRoYXQgb2ZmaWNpYWwgTG9qYmFuIGNhbm5vdCBleHByZXNzIG5lZ2F0aW9uIG9mIGV4aXN0ZW5j ZSBvZiBwbHVyYWwgdmFyaWFibGUge25ha3Ugc3Unb2kgZGF9LCB3aGljaCBpcyBuZXZlcnRoZWxl c3MgbmVjZXNzYXJ5LCBmb3IgZXhhbXBsZSBpbiB0aGUgZm9sbG93aW5nIHNpdHVhdGlvbjoKCgoK XiBsbyB4byBwcmVudSBjdSBqbWFqaSBnaSdlIGp1a3BhIGdpJ2UgY2l0a2Egfmhzfn4tLX4gbm9+ cHB+Cgp+L3BwficnIkhvdyBtYW55IHBlb3BsZSBnYXRoZXJlZCwgY29va2VkIGFuZCBhdGU/IiAi emVyby4iJydeCgoKClRoaXMgcmVzcG9uc2UgaXMgYW4gYWJicmV2aWF0ZWQgZm9ybSBvZiB7bG8g bm8gcHJlbnUgY3Ugam1hamkgZ2knZSBqdWtwYSBnaSdlIGNpdGthfS4KCgoKVGhpcyBwcm9wb3Np dGlvbiBtZWFucyB0aGF0IHtsbyBubyBwcmVudX0gc2F0aXNmaWVzIHNlbGJyaSB7am1haml9IGNv bGxlY3RpdmVseSBhbmQgKGplKSBub24tZGlzdHJpYnV0aXZlbHksIHtqdWtwYX0gY29sbGVjdGl2 ZWx5IG9yIChqYSkgZGlzdHJpYnV0aXZlbHksIHtjaXRrYX0gbm9uLWNvbGxlY3RpdmVseSBhbmQg KGplKSBkaXN0cmlidXRpdmVseS4gQmVjYXVzZSBpdCBpbmNsdWRlcyBzZWxicmkge2ptYWppfSB0 byBiZSBzYXRpc2ZpZWQgbm9uLWRpc3RyaWJ1dGl2ZWx5LCB0aGUgc3VtdGkgY2Fubm90IGJlIHJl cGxhY2VkIGJ5IG5lZ2F0aW9uIG9mIGV4aXN0ZW5jZSBvZiBib3VuZCBzaW5ndWxhciB2YXJpYWJs ZSB7bmFrdSBzdSdvIGRhfT17bm8gZGF9LiBNb3Jlb3ZlciwgYmVjYXVzZSBpdCBpbmNsdWRlcyBz ZWxicmkge2NpdGthfSB0byBiZSBzYXRpc2ZpZWQgbm9uLWNvbGxlY3RpdmVseSwge2xvfSBvZiB0 aGUgc3VtdGkgY2Fubm90IGJlIHJlcGxhY2VkIGJ5IHtsb2l9PXtsbyBndW5tYSBiZSBsb30uCgoK CkZvciBtYWtpbmcgc3VjaCBhIHByb3Bvc2l0aW9uIG1lYW5pbmdmdWwsIGl0IGlzIGVzc2VudGlh bCB0byBnaXZlIGFuIGV4cHJlc3Npb24ge2xvIG5vIGJyb2RhfSBhIG1lYW5pbmcgb2YgbmVnYXRp b24gb2YgZXhpc3RlbmNlIG9mIHBsdXJhbCB2YXJpYWJsZS4KCkZvciB0aGlzIHB1cnBvc2UsIEkg c3VnZ2VzdCB0aGUgZm9sbG93aW5nIGRlZmluaXRpb24gdmFsaWQgaW4gdGhlIGNhc2UgdGhhdCBQ QT0wIGZvciB7bG8gUEEgYnJvZGF9LgoKO1Vub2ZmaWNpYWwgZGVmaW5pdGlvbiBvZiB7bG8gbm8g YnJvZGF9Onx8CgpsbyBubyBicm9kYSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IG5ha3Ugc3Un b2kgZGEgcG9pIGtlJ2EgYnJvZGEKCnx8CgoKCu+8iElmIGl0IHdlcmUgZGVmaW5lZCBhcyB7bmFr dSBsbyBicm9kYX0sIHRoZSBuZWdhdGlvbiB3b3VsZCBoYXZlIHNwYW5uZWQgdGhlIHdob2xlIHBy b3Bvc2l0aW9uLCBhbmQgaXQgd291bGQgbm90IGhhdmUgaW1wbGllZCBxdWFudGlmaWNhdGlvbi4g SSBhYmFuZG9uZWQgdGhlcmVmb3JlIHN1Y2ggYSBkZWZpbml0aW9uLikKCgoKISEhISEjIENhbm5v dCBxdWFudGlmeSBtYXRlcmlhbCBub3VuIG9yIHNvbWV0aGluZwoKQXhpb20gMSBvZiAoKHwjSW5u ZXJfcXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKSBleGNsdWRlcyBzdW10aSB0aGF0IGlzIG5l aXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMgZnJvbSBleHByZXNzaW9ucyB7KHN1 J28pIE4gbWVpfSBhbmQge2xvIE4gYnJvZGF9LgoKCgpDYW4gd2UgdXNlIHtwaVBBfSBmb3Igc3Vt dGkgdGhhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLCB0aGVuPyBO by4KCigoQlBGSyBTZWN0aW9uOiBnYWRyaXxBY3R1YWxseSwgcGlQQSBpcyBkZWZpbmVkIG9ubHkg Zm9yIG91dGVyIHF1YW50aWZpY2F0aW9uLikpCgp8fAoKcGlQQSAnJ3N1bXRpJycgfmhzfnx+aHN+ IGxvIHBpUEEgc2knZSBiZSBwYSBtZSAnJ3N1bXRpJycKCnx8CgpBcyB3ZSBjYW4gc2VlIGluIHRo ZSBkZWZpbml0aW9uLCB0aGUgYm9keSBvZiBvdXRlciBxdWFudGlmaWNhdGlvbiBieSB7cGlQQX0g aXMgcGx1cmFsIGNvbnN0YW50IHtsbyBwaVBBIHNpJ2V9LCB3aGljaCBpcyBub3QgYSBib3VuZCBz aW5ndWxhciB2YXJpYWJsZS4gSG93ZXZlciwgeDIgb2Yge3BpUEEgc2knZX0gaXMge3BhIG1lICcn c3VtdGknJ30sIHRvIHdoaWNoICgoQlBGSyBTZWN0aW9uOiBnYWRyaXx0aGUgZGVmaW5pdGlvbiBv ZiBQQSBicm9kYSkpIGlzIGFwcGxpZWQ6Cgp8fAoKUEEgYnJvZGEgfmhzfnx+aHN+IFBBIGRhIHBv aSBicm9kYSAKCnx8CgpBcyBhIHJlc3VsdCwge3BpUEEgJydzdW10aScnfSBpcyBkZWZpbmVkIG9u bHkgd2hlbiB0aGVyZSBpcyBhbiBpbmRpdmlkdWFsIHRoYXQgc2F0aXNmaWVzIHgxIG9mIHttZSAn J3N1bXRpJyd9LiBUaGF0IGlzIHRvIHNheSwgd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwg bm9yIGluZGl2aWR1YWxzIGlzIGV4Y2x1ZGVkIGFsc28gZnJvbSBhbiBleHByZXNzaW9uIG9mIG91 dGVyIHF1YW50aWZpY2F0aW9uIHdpdGgge3BpUEF9LgoKCgpXaGF0IHdvdWxkIGJlIGlmIHtwaVBB fSB3ZXJlIGRlZmluZWQgYWxzbyBmb3IgaW5uZXIgcXVhbnRpZmljYXRpb24/CgpJbiB0aGF0IGNh c2UsIHRoZSBmb2xsb3dpbmcgZGVmaW5pdGlvbiB3b3VsZCBiZSBkZXNpcmFibGUgdG8gY29uZm9y bSB0aGUgZGVmaW5pdGlvbiBvZiB7cGlQQX0gb2Ygb3V0ZXIgcXVhbnRpZmljYXRpb246Cgo7IFVu b2ZmaWNpYWwgZGVmaW5pdGlvbiBvZiB7cGlQQX0gb2YgaW5uZXIgcXVhbnRpZmljYXRpb246fHwK CmxvIHBpUEEgYnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiB6bydlIG5vaSBrZSdhIHBp UEEgc2knZSBiZSBsbyBwYSBicm9kYQoKfHwKClRoaXMgZGVmaW5pdGlvbiBvZiB7cGlQQX0gb2Yg aW5uZXIgcXVhbnRpZmljYXRpb24gc3RpbGwgZXhjbHVkZXMgd2hhdCBpcyBuZWl0aGVyIGFuIGlu ZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzIHVubGVzcyB7bG8gcGEgYnJvZGF9IGlzIGRlZmluZWQg aW4gYW5vdGhlciB3YXkgc28gdGhhdCBpdCBjYW4gYmUgd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2 aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpXaHkgZG9uJ3Qgd2UgdXNlIHtQQSBzaSdlfSB0byBl eHByZXNzIHF1YW50aWZpY2F0aW9uIG9mIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5v ciBpbmRpdmlkdWFscz8gCgpJdCBpcyBwb3NzaWJsZSwgYnV0ICgoQlBGSyBTZWN0aW9uOiBOdW1l cmljIHNlbGJyaXxCUEZLJ3MgY3VycmVudCBkZWZpbml0aW9uIG9mIHtzaSdlfSkpIGRlcGVuZHMg b24ge3BhZ2J1fToKCnx8Cgp4MSBudW1iZXIgc2knZSB4MiB+aHN+fH5oc34geDEgcGFnYnUgeDIg Z2knZSBrbGFuaSBsaSBudW1iZXIgbG8gc2UgZ3JhZHUgYmUgeDIKCnx8CgpJZiB3ZSBpbnRlcnBy ZXQge3BhZ2J1fSBzbyB0aGF0IHgxIGlzIG5vdCBsYXJnZXIgdGhhbiB4MiAoYW5kIHRoaXMgaXMg b3JkaW5hcnkgaW50ZXJwcmV0YXRpb24pLCBbaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21z Zy9sb2piYW4vUkF0RTdZay1kcXcvblViWml3bUIyTTBKfHtzaSdlfSBpcyB2ZXJ5IGluY29udmVu aWVudCBiZWNhdXNlIHRoZSB1bml0IHNob3VsZCBiZSBjaGFuZ2VkIGV2ZXJ5IHRpbWUgY291bnRp bmcgdXAuXSBJZiB7c2knZX0gd2VyZSBkZWZpbmVkIHNvIHRoYXQgUEEgb2Yge1BBIHNpJ2V9IGNv dWxkIGJlIGxhcmdlciB0aGFuIDEsIHtzaSdlfSB3b3VsZCBoYXZlIGJlZW4gcHJhZ21hdGljIGZv ciBxdWFudGlmaWNhdGlvbiBvZiB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5k aXZpZHVhbHMuCgoKCkJlc2lkZXMgdGhvc2UgY29uc2lkZXJhdGlvbnMsIGlmIHdlIGFiYW5kb24g QXhpb20gMSBvZiAoKHwjSW5uZXJfcXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKSwgRGVmaW5p dGlvbnMgKEQxKSAoRDIpIChEMykgY2FuIGJlIGFwcGxpZWQgdG8gd2hhdCBpcyBuZWl0aGVyIGFu IGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKSW4gdGhpcyBjYXNlLCBhIHNwZWFrZXIgc2hv dWxkIHNlbGVjdCBzb21lIHBsdXJhbCBjb25zdGFudHMge2tvJ2EsIGtvJ2UsIC4uLn0sIGFuZCBk ZWNpZGUgdGhhdCB7W1trbydhL2tvJ2UvLi4uXSBzdSdvIHBhIG1laX07IHRoZSBzZWxlY3Rpb24g bXVzdCBiZSBkb25lIGF0dGVudGl2ZWx5IHNvIHRoYXQgcmVmZXJlbnRzIG9mIHBsdXJhbCBjb25z dGFudHMgdGhhdCBhcmUge3BhIG1laX0gZG8gbm90IG92ZXJsYXAgd2l0aCBlYWNoIG90aGVyLgoK VGhvc2UgcHJlcGFyYXRpb25zIG9mIHtrbydhLCBrbydlLCAuLi59IGFuZCAoRDIpIGltcGx5IG9u bHkKCnx8CgpnYW5haSBbW2tvJ2Eva28nZS8uLi5dIHBhIG1laSAKCmdpIHJvJ29pIGRlIHBvaSBt ZSBbW2tvJ2Eva28nZS8uLi5dIHpvJ3UgZGUgbWUgW1trbydhL2tvJ2UvLi4uXQoKfHwKClVuZGVy IHRoZXNlIGNvbmRpdGlvbnMsIHRoZXJlIGlzIG5vIG5lZWQgdGhhdCB3aGF0IGlzIHgxIG9mIHtw YSBtZWl9IGlzIGFuIGluZGl2aWR1YWwuCgoKCldoZW4gd2UgdXNlIERlZmluaXRpb25zIChEMSkg KEQyKSAoRDMpIHdpdGhvdXQgdXNpbmcgQXhpb20gMSBvZiAoKHwjSW5uZXJfcXVhbnRpZmljYXRp b258U2VjdGlvbiAzLjEpKSwgYSBjb25kaXRpb24ge2dpJ2Ugc3UnbyBwYSBtZWl9IG11c3QgYmUg YWRkZWQgdG8ge2RlfSBvZiAoRDEp77yIV2hlbiBBeGlvbSAxIGlzIHVzZWQsIHJlZmVyZW50cyBp biB0aGUgZG9tYWluIG9mIHZhcmlhYmxlIHtkZX0gc2F0aXNmaWVzIHRoaXMgY29uZGl0aW9uIGF1 dG9tYXRpY2FsbHkpLiAKCjtVbm9mZmljaWFsIGRlZmluaXRpb25zIHVuZGVyIHRoZSBjb25kaXRp b24gdGhhdCBBeGlvbSAxIGlzIGFiYW5kb25lZDp8fAoKKEQxJykga28nYSBzdSdvIE4gbWVpIH5o c358fmhzfiA9Y2EnZSB+aHN+fH5oc34gc3Unb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBzdSdvaSBk ZSBwb2kgbWUga28nYSBnaSdlIHN1J28gcGEgbWVpIHpvJ3UgZ2UgZGEgc3UnbyBOLTEgbWVpIGdp bmFpIGRlIG1lIGRhCgooRDIpIGtvJ2EgTiBtZWkgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBr bydhIHN1J28gTiBtZWkgZ2knZSBuYWkgc3UnbyBOKzEgbWVpIAoKKEQzKSBsbyBQQSBicm9kYSB+ aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgUEEgbWVpIGdpJ2UgYnJvZGEK Cnx8CgpVc2luZyB0aGVzZSBkZWZpbml0aW9ucywgaW5uZXIgcXVhbnRpZmljYXRpb24gb2Ygd2hh dCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzIGJlY29tZXMgcG9zc2li bGUuIE1vcmVvdmVyLCAiVW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtwaVBBfSBvZiBpbm5lciBx dWFudGlmaWNhdGlvbiIgZGlzY3Vzc2VkIGFib3ZlIGJlY29tZXMgYWJsZSB0byBiZSBhcHBsaWVk IHRvIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoKVGhl IGRpYWdyYW0gYmVsb3cgc2hvd3MgYSBwcm9jZWR1cmUgb2YgY291bnRpbmcgdXAgd2hhdCBpcyBu ZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzIHJlcHJlc2VudGVkIHdpdGggYSBk aXJlY3RlZCBncmFwaC4gSW4gdGhpcyBkaWFncmFtLCBsb29wcyBzdWNoIGFzIHtYIG1lIFh9IGFy ZSBvbWl0dGVkIGZvciBzaW1wbGljaXR5LCB0aG91Z2ggdGhleSBleGlzdC4gQW1vbmcgaW5maW5p dGUgbnVtYmVyIG9mIHZlcnRpY2VzIChwbHVyYWwgY29uc3RhbnRzKSwgdGhlIHZlcnRpY2VzIHRo YXQgYSBzcGVha2VyIHNlbGVjdGVkIGFzIHtzdSdvIHBhIG1laX0gYXJlIGNvbG9yZWQgcGluay4g Q291bnRpbmcgdXAgY29ycmVzcG9uZHMgdG8gc2VsZWN0aW5nIGEgdHJlZSB0aGF0IGlzIGEgc3Vi Z3JhcGggb2YgYSBkaXJlY3RlZCBncmFwaCBmb3JtZWQgd2l0aCB7bWV9LCBmb3IgZXhhbXBsZSB0 aGUgcGFydCBvZiBibHVlIGNvbG9yIGluIHRoZSBkaWFncmFtLgoKCgp7aW1nIGZpbGVJZD0iOSIg dGh1bWI9InkiIHJlbD0iYm94W2ddIn0KCgoKISEhIyBPdXRlciBxdWFudGlmaWNhdGlvbgoKKChC UEZLIFNlY3Rpb246IGdhZHJpfEJQRksgZGVmaW5lcyBvdXRlciBxdWFudGlmaWNhdGlvbikpIGFz IGZvbGxvd3M6Cgp8fAoKUEEgJydzdW10aScnIH5oc358fmhzfiBQQSBkYSBwb2kga2UnYSBtZSAn J3N1bXRpJycKClBBIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kgYnJvZGEgCgpwaVBBICcnc3Vt dGknJyB+aHN+fH5oc34gbG8gcGlQQSBzaSdlIGJlIHBhIG1lICcnc3VtdGknJwoKfHwKCgoKT3V0 ZXIgcXVhbnRpZmljYXRpb24gZXhjZXB0IHtwaVBBfSBmb3JtcyB7UEEgZGF9LCB3aGljaCBpcyBv ZmZpY2lhbGx5IGEgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUuIEl0IGltcGxpZXMgdGhhdCB0aGVz ZSBhcmd1bWVudHMgc2F0aXNmeSBhIHByZWRpY2F0ZSBfX2Rpc3RyaWJ1dGl2ZWx5X18uIEZvciBl eGFtcGxlLCBpdCBpcyBtZWFuaW5nbGVzcyB0byB1c2Uge2NpIGxvIHByZW51fSBhcyB4MSBvZiB7 am1haml9IChnYXRoZXIpLCBiZWNhdXNlIGl0IGlzIG5vdCB0aGUgY2FzZSB0aGF0IGVhY2ggb2Yg dGhyZWUgcGVvcGxlIHNhdGlzZmllcyB0aGUgcHJlZGljYXRlICJnYXRoZXIiLgoKCgpIb3dldmVy LCBpZiB3ZSB1c2UgdW5vZmZpY2lhbCBwbHVyYWwgcXVhbnRpZmllcnMge3JvJ29pfSBvciB7c3Un b2l9IGZvciBQQSwgb3V0ZXIgcXVhbnRpZmljYXRpb24gY2FuIGZvcm0gYm91bmQgcGx1cmFsIHZh cmlhYmxlLiBGb3IgZXhhbXBsZSwKCl5zdSdvaSBwcmVudSBjdSBqbWFqaSB+aHN+IHRoZXJlIGFy ZSBwZW9wbGUgd2hvIGdhdGhlci5eCgpUaGlzIHByb3Bvc2l0aW9uIGlzIGltcGxpZWQgYnkgYSBw cm9wb3NpdGlvbiBpbmNsdWRpbmcgcGx1cmFsIGNvbnN0YW50CgpebG8gcHJlbnUgY3Ugam1hamkg fmhzfiBQZW9wbGUgZ2F0aGVyLl4KCndpdGggdGhlIGxvZ2ljYWwgYXhpb20gaW4gKCh8I0FfbG9n aWNhbF9heGlvbV9vbl9wbHVyYWxfY29uc3RhbnR8U2VjdGlvbiAyLjIuNikpLgoKCgp7UEEgbG8g YnJvZGF9IGRpZmZlcnMgZnJvbSB7UEEgYnJvZGF9IGluIGRvbWFpbiBvZiByZWZlcmVudHMgb2Yg Ym91bmQgc2luZ3VsYXIgdmFyaWFibGUgdG8gYmUgY291bnRlZC4gVGhlIGRlZmluaXRpb25zIG9m IG91dGVyIHF1YW50aWZpY2F0aW9uIGFyZSBhcHBsaWVkIHRvIHRoZW0gYXMgZm9sbG93czoKCnx8 CgpQQSBsbyBicm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGtlJ2EgbWUgbG8gYnJvZGEgfmhzfnx+ aHN+IFRoZSBkb21haW4gb2YgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUgaXMgYSByZWZlcmVudCBv ZiBwbHVyYWwgY29uc3RhbnQge2xvIGJyb2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNl LCBhbmQgY291bnRlZCB0byBiZSBQQQoKUEEgYnJvZGEgfmhzfnx+aHN+IFBBIGRhIHBvaSBrZSdh IGJyb2RhIH5oc358fmhzfiBUaGUgZG9tYWluIG9mIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIGlz IGFsbCB0aGF0IGFyZSB7YnJvZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGFuZCBj b3VudGVkIHRvIGJlIFBBCgp8fAoKCgpeCgo7RXhhbXBsZSAxOiBybyBqbWl2ZSBiYSBtb3JzaSB+ aHN+ICcnQWxsIGxpdmluZyB0aGluZ3Mgd2lsbCBkaWUuJycKCjtFeGFtcGxlIDI6IHJvIGxvIHBy ZW51IHRpIGtsYW1hIH5oc34gJydBbGwgdGhlIHBlb3BsZSBjb21lIGhlcmUuJydeCgpFeGFtcGxl IDEgbWVudGlvbnMgYWxsIHtqbWl2ZX0gaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4gSW4g dGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBvZiBFeGFtcGxlIDIsIGl0IGlzIHBvc3NpYmxlIHRv IGludGVycHJldCB0aGF0IHRoZXJlIGFyZSB7cHJlbnV9IG90aGVyIHRoYW4gdGhlIHJlZmVyZW50 IG9mIHRoZSBwbHVyYWwgY29uc3RhbnQge2xvIHByZW51fS4KCgoKVGhlIG91dGVyIHF1YW50aWZp Y2F0aW9uIGJ5IHtwaVBBfSBmb3JtcyBwbHVyYWwgY29uc3RhbnQge2xvIHBpUEEgc2knZX0uIEhv d2V2ZXIsIHgyIG9mIHtwaVBBIHNpJ2V9IGlzIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIHtwYSBt ZSAnJ3N1bXRpJyd9LiB7cGl9IGluIHRoaXMgZGVmaW5pdGlvbiBtZWFucyAibm90IGxhcmdlciB0 aGFuIDEiOyBwcmFjdGljYWxseSwge2ZpJ3V9IG9yIHNvbWV0aGluZyBjYW4gYmUgdXNlZCBpbnN0 ZWFkIG9mIHtwaX0KCgoKISEhISMgQ29tYmluYXRpb24gb2Ygb3V0ZXIgYW5kIGlubmVyIHF1YW50 aWZpY2F0aW9ucwoKVGhlIGRlZmluaXRpb25zIG9mIGlubmVyIGFuZCBvdXRlciBxdWFudGlmaWNh dGlvbiBpbXBseSB0aGUgZm9sbG93aW5nIGludGVycHJldGF0aW9uczoKCnx8CgpNIGxvIFtbTl0g YnJvZGEgfmhzfnx+aHN+IE0gKHdoaWNoIHNhdGlzZmllcyBhIHByZWRpY2F0ZSBkaXN0cmlidXRp dmVseSkgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpNIGxvaSBbW05dIGJyb2RhIH5oc358 fmhzfiBNICh3aGljaCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgZGlzdHJpYnV0aXZlbHkpIG9mIHts byBndW5tYX0gdGhhdCBjb25zaXN0cyBvZiB7bG8gYnJvZGF9IFtbdGhhdCBhcmUgTl0KCk0gbG8n aSBbW05dIGJyb2RhIH5oc358fmhzfiBNICh3aGljaCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgZGlz dHJpYnV0aXZlbHkpIG9mIHtsbyBzZWxjbWl9IHRoYXQgY29uc2lzdHMgb2Yge2xvIGJyb2RhfSBb W3RoYXQgYXJlIE5dCgpwaSBNIGxvIFtbTl0gYnJvZGEgfmhzfnx+aHN+IFF1YW50aXR5IHtwaSBN IHNpJ2V9IG9mIGEgcGFydCBvZiBvbmUgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpwaSBN IGxvaSBbW05dIGJyb2RhIH5oc358fmhzfiBRdWFudGl0eSB7cGkgTSBzaSdlfSBvZiBhIHBhcnQg b2Ygb25lIG9mIHtsbyBndW5tYX0gdGhhdCBjb25zaXN0cyBvZiB7bG8gYnJvZGF9IFtbdGhhdCBh cmUgTl0KCnBpIE0gbG8naSBbW05dIGJyb2RhIH5oc358fmhzfiBRdWFudGl0eSB7cGkgTSBzaSdl fSBvZiBhIHBhcnQgKHN1YnNldCkgb2Ygb25lIG9mIHtsbyBzZWxjbWl9IHRoYXQgY29uc2lzdHMg b2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgp8fAoKCgpBbW9uZyB0aGVtLCB7TSBsbyBbW05d IGJyb2RhfSBhbmQge3BpIE0gbG9pIFtbTl0gYnJvZGF9IGNhbiBleHByZXNzIHNvbWUgb2YgcGx1 cmFsIG51bWJlciBvZiB0aGluZ3MuCgpeCgo7RXhhbXBsZSAxOiByZSBsbyBbW2NpXSBtbGF0dSBt aSB2aXNrYSB+aHN+ICcnVHdvIFtbb2YgdGhyZWVdIGNhdHMgc2VlIG1lLicnCgo7RXhhbXBsZSAy OiByZSBmaSd1IGNpIGxvaSBbW3ZlaSBjaSBwaSdpIG55ICh2ZSdvKV0gbWxhdHUgbWkgdmlza2Eg fmhzfiAnJ1R3byB0aGlyZCBvZiBbWzNuXSBjYXRzIHNlZSBtZS4nJ14KCgoKe3JlIGxvIFtbY2ld IG1sYXR1fSBvZiBFeGFtcGxlIDEgcmVmZXJzIHRvIHR3byBjYXRzIGFtb25nIFtbdGhyZWVdIGNh dHMgdGhhdCBhcmUgcmVmZXJlbnQgb2Yge2xvIFtbY2ldIG1sYXR1fS4KCklmIHRoZSBpbm5lciBx dWFudGlmaWVyIHtjaX0gaXMgbm90IHNhaWQsIGl0IGlzIHVuY2xlYXIgaG93IG1hbnkgY2F0cyBh cmUgcmVmZXJyZWQgdG8gYnkge2xvIG1sYXR1fTsgaW4gYW55IGNhc2Uge3JlIGxvIG1sYXR1fSBy ZWZlcnMgdG8gdHdvIG9mIHRoZW0uCgoKCkluIEV4YW1wbGUgMiwgdGhlIGFyZ3VtZW50IGlzIGZv cm1lZCBieSB7bG9pfSwgYW5kIHRoZSByZWZlcmVudCBpcyBhY3R1YWxseSB7bG8gZ3VubWF9LiBF eHBhbmRpbmcgRXhhbXBsZSAyIGFjY29yZGluZyB0byB0aGUgZGVmaW5pdGlvbnMgb2Yge2xvaX0g YW5kIHtwaVBBICcnc3VtdGknJ30sCgpeCgo7RXhhbXBsZSAyLTE6IGxvIHJlIGZpJ3UgY2kgc2kn ZSBiZSBwYSBtZSBsbyBndW5tYSBiZSBsbyBbW3ZlaSBjaSBwaSdpIG55ICh2ZSdvKV0gbWxhdHUg bWkgdmlza2FeCgpUaGF0IGlzIHRvIHNheSwge3JlIGZpJ3UgY2kgbG9pLi4ufSByZWZlcnMgdG8g dHdvIHRoaXJkIG9mIGFuIGluZGl2aWR1YWwge3BhIG1lIGxvIGd1bm1hLi4ufS4gVGhpcyB7bG8g Z3VubWF9IGNvbnNpc3RzIG9mIHt2ZWkgY2kgcGknaSBueSAodmUnbyl9IGNhdHMuIAoKSWYgdGhl IGlubmVyIHF1YW50aWZpZXIgaXMgbm90IHNhaWQsIGl0IGlzIHVuY2xlYXIgaG93IG1hbnkgY2F0 cyBjb25zdGl0dXRlIHtsbyBndW5tYX0gdGhhdCBpcyB7bG9pIG1sYXR1fTsgaW4gYW55IGNhc2Ug e3JlIGZpJ3UgY2kgbG9pIG1sYXR1fSByZWZlcnMgdG8gdHdvIHRoaXJkIG9mIHtsbyBndW5tYX0u IEhvd2V2ZXIsIAoKXnJlIGZpJ3UgY2kgbG9pIG1sYXR1IG1pIHZpc2thXgoKaXMgbWVhbmluZ2Z1 bCBvbmx5IHdoZW4ge2xvaSBtbGF0dX0gY29uc2lzdHMgb2YgM24gY2F0cywgYmVjYXVzZSBpdCBp cyBub3Qgb3JkaW5hcnkgdG8gaW50ZXJwcmV0IHRoYXQgYSBmcmFnbWVudCBvZiBhIGNhdCBzYXRp c2ZpZXMgdGhlIHByZWRpY2F0ZSB7dmlza2F9LgoKQWNjb3JkaW5nIHRvIEJQRksncyBkZWZpbml0 aW9uLCB7bG9pfSBjYW5ub3QgZm9ybSBhIHBsdXJhbCBjb25zdGFudCB0aGF0IHNhdGlzZmllcyBh IHByZWRpY2F0ZSBub24tY29sbGVjdGl2ZWx5LiBJZiB5b3Ugd2FudCB0byBtZWFuICJjYXRzIHNl ZSBtZSBub24tY29sbGVjdGl2ZWx5IiwgYXZvaWQge2xvaX0sIG9yIHVzZSB7bHUnYX0sIHdoaWNo IHdpbGwgYmUgZGlzY3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVuX2x1X2FfbHVfb19sdV9p X2FuZF9nYWRyaXxTZWN0aW9uIDMuMykpOgoKXmx1J2EgcmUgZmkndSBjaSBsb2kgbWxhdHUgbWkg dmlza2FeCgoKCiEhISEjIEJvdW5kIHZhcmlhYmxlcyBhbmQgY29uc3RhbnRzIGluIGEgc3RhdGVt ZW50CgpXaGVuIGJvdGggYm91bmQgdmFyaWFibGVzIGFuZCBjb25zdGFudHMgYXBwZWFyIGluIGEg c3RhdGVtZW50LCB0aGUgY29uc3RhbnRzIGRvIG5vdCBuZWNlc3NhcmlseSBzcGFuIG92ZXIgYWxs IGJvdW5kIHZhcmlhYmxlcy4gQWx0aG91Z2ggdGhleSBhcmUgY2FsbGVkICJjb25zdGFudHMiLCBp dCBpcyBub3QgZ2VuZXJhbGx5IGRldGVybWluZWQgd2hldGhlciB0aGV5IHJlZmVyIHRvIGNvbW1v biByZWZlcmVudHMgZm9yIGFsbCByZWZlcmVudHMgaW4gZG9tYWlucyBvZiB2YXJpYWJsZXMsIG9y IHRoZXkgcmVmZXIgdG8gZGlmZmVyZW50IHJlZmVyZW50cyBkZXBlbmRlbnQgb24gcmVmZXJlbnRz IGluIGRvbWFpbnMgb2YgdmFyaWFibGVzLiBUaGUgcmVhc29uIGZvbGxvd3MgYmVsb3cgKFtodHRw czovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2xvamJhbi9SQXRFN1lrLWRxdy9BQkRmT2Z1b3pX RUp8RGlzY3Vzc2lvbl0pLgoKCgpXaGVuIHNvbWUgc3VtdGkgb2YgdGVyYnJpIGluIGEgc3RhdGVt ZW50IGFyZSBvbWl0dGVkLCBpdCBpcyBjb25zaWRlcmVkIHRoYXQgdGhlcmUgYXJlIGltcGxpY2l0 IHt6bydlfSBpbiB0aG9zZSBwbGFjZXMgKFtodHRwOi8vZGFnLmdpdGh1Yi5pby9jbGwvNy83L3xD TEwgNy43XSkuCgpGb3IgZXhhbXBsZSwKCl5ybyBtbGF0dSBjdSBqYmVuYX5wcH4KCn4vcHB+ICAn J0FsbCBjYXRzIGFyZS93aWxsIGJlIGJvcm4uJydeCgpzZWVtcyB0byBiZSB0cnVlIGZyb20gYSBz dGFuZGFyZCBwb2ludCBvZiB2aWV3LiBBY2NvcmRpbmcgdG8gZGVmaW5pdGlvbiBvZiB0ZXJicmkg b2Yge2piZW5hfSwgaXQgaXMgY29uc2lkZXJlZCB0aGF0IHRocmVlIHN1bXRpIGFyZSBvbWl0dGVk LCBhbmQgdGhpcyBzdGF0ZW1lbnQgaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMKCl5ybyBtbGF0dSBj dSBqYmVuYSB6bydlIHpvJ2Ugem8nZV4KCmluIHdoaWNoIHt6bydlfSBhcmUgZXhwbGljaXQuIAoK VW5sZXNzIGFsbCBjYXRzIGluIHRoaXMgdW5pdmVyc2Ugb2YgZGlzY291cnNlIGFyZS93aWxsIGJl IGJvcm4gdG8gY29tbW9uIHBhcmVudHMgYXQgdGhlIHNhbWUgdGltZSBhdCB0aGUgc2FtZSBwbGFj ZSwgdGhlc2Uge3pvJ2V9IGNhbm5vdCBiZSBjb25zaWRlcmVkIGFzIGNvbW1vbiBjb25zdGFudHMg Zm9yIGFsbCByZWZlcmVudHMgaW4gYSBkb21haW4gb2Yge3JvIG1sYXR1fS4gSW4gb3JkZXIgdG8g bWFrZSBzdWNoIGFuIGV4cHJlc3Npb24gbGlrZSB7cm8gbWxhdHUgY3UgamJlbmF9IGhhdmUgaW50 ZW5kZWQgbWVhbmluZywgImNvbnN0YW50cyIgb2YgTG9qYmFuIGNhbiBiZSBkZXBlbmRlbnQgb24g cmVmZXJlbnRzIGluIGRvbWFpbnMgb2YgYm91bmQgdmFyaWFibGVzLgoKCgoiQ29uc3RhbnRzIiBp biB0aGlzIG1lYW5pbmcgY29ycmVzcG9uZCB0byBTa29sZW0gZnVuY3Rpb25zIGluIFNrb2xlbSBu b3JtYWwgZm9ybXMgb2YgcHJlZGljYXRlIGxvZ2ljLiBUaGUgdGFibGUgYmVsb3cgc2hvd3MgY29t cGFyaXNvbiBvZiBpbnRlcnByZXRhdGlvbnMgYmV0d2VlbiBwcmVkaWNhdGUgbG9naWMsIHhvcmxv IG9uIHdoaWNoIHRoaXMgY29tbWVudGFyeSBkZXBlbmRzIGFuZCBpbXBsaWNpdCBxdWFudGlmaWVy IChbaHR0cDovL2RhZy5naXRodWIuaW8vY2xsLzYvMS98Q0xMIHZlci4xLjAgQ2hhcHRlciA2XSkg d2hpY2ggd2FzIGFib2xpc2hlZC4gVGhlIGV4cHJlc3Npb25zIHRoYXQgaGF2ZSB0aGUgc2FtZSB0 cnV0aCB2YWx1ZSBhcmUgYWxpZ25lZCBpbiB0aGUgc2FtZSBjb2x1bW4uIFVwcGVyIGNhc2UgWSBy ZXByZXNlbnRzIGEgcGx1cmFsIHZhcmlhYmxlLiBUaGUgcm93IG9mIHpvJ2UreG9ybG8gc2hvd3Mg dW5vZmZpY2lhbCBzdWdnZXN0aW9uIG9mIGludGVycHJldGF0aW9uLiBJbiB0aGUgZ3JheSBwYXJ0 IGluIHRoZSByb3cgb2YgUHJlbmV4IG5vcm1hbCwgdW5vZmZpY2lhbCBleHByZXNzaW9ucyB3aXRo IGFuIGV4cGVyaW1lbnRhbCBjbWF2byB7c3Unb2l9IGFyZSBzaG93bi4gKENsaWNrIG9uIHRoZSB0 YWJsZSB0byBlbmxhcmdlLikKCntpbWcgZmlsZUlkPSIxMiIgdGh1bWI9InkiIGxpbms9ImRpc3Bs YXkxMSIgcmVsPSJib3hbZ10ifQoKCgohISEjIFJlbGF0aW9uIGJldHdlZW4gbHUnYSwgbHUnbywg bHUnaSBhbmQgZ2FkcmkKCigoQlBGSyBTZWN0aW9uOiBJbmRpcmVjdCBSZWZlcmVyc3xCUEZLIGRl ZmluZXMpKSB7bHUnYX0sIHtsdSdvfSwge2x1J2l9IG9mIExBaEUgYXMgZm9sbG93czoKCnx8Cgps dSdhICcnc3VtdGknJyB+aHN+fH5oc34gbG8gbWUgJydzdW10aScnIH5oc358fmhzfiBsbyBjbWlt YSBiZSAnJ3N1bXRpJycgW1tub2kgc2VsY21pXQoKbHUnbyAnJ3N1bXRpJycgfmhzfnx+aHN+IGxv aSBtZSAnJ3N1bXRpJycKCmx1J2kgJydzdW10aScnIH5oc358fmhzfiBsbydpIG1lICcnc3VtdGkn JwoKfHwKCkhvd2V2ZXIsIGd1ZXNzaW5nIGZyb20gdGhlIEVuZ2xpc2ggZGVmaW5pdGlvbnMgb24g dGhlIHNhbWUgcGFnZSwgdGhlIGRlZmluaXRpb24gb2Yge2x1J2F9IGlzIHVuc2F0aXNmYWN0b3J5 LCBhbmQgdGhhdCBvZiB7bHUnb30gaGFzIHNvbWUgcHJvYmxlbS4KCgoKe2x1J2F9IGV4dHJhY3Rz IHgyIG9mIHtzZWxjbWl9IGZyb20gc3VtdGkgdGhhdCBpcyB7bG8gc2VsY21pfSwgYW5kIHgyIG9m IHtndW5tYX0gZnJvbSBzdW10aSB0aGF0IGlzIHtsbyBndW5tYX0uIE1vcmVvdmVyLCB7bHUnYX0g bWFrZXMgZXhwbGljaXQgdGhhdCB0aGUgc3VtdGkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3Ry aWJ1dGl2ZWx5IGFuZCBub24tY29sbGVjdGl2ZWx5LiBPbiB0aGUgb3RoZXIgaGFuZCwgYWNjb3Jk aW5nIHRvIHRoZSBkZWZpbml0aW9uIG9mIHtsb30sIHtsbyBtZSAnJ3N1bXRpJyd9IGRvZXMgbm90 IGltcGx5ICJkaXN0cmlidXRpdmVseSBhbmQgbm9uLWNvbGxlY3RpdmVseSIuCgoKCntsdSdvfSBt YWtlcyBleHBsaWNpdCB0aGF0IHRoZSBzdW10aSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWRp c3RyaWJ1dGl2ZWx5IGFuZCBjb2xsZWN0aXZlbHkuIE9uIHRoZSBvdGhlciBoYW5kLCBhY2NvcmRp bmcgdG8gdGhlIGRlZmluaXRpb24gb2Yge2xvaX0sIHtsb2kgbWUgJydzdW10aScnfSBzYXRpc2Zp ZXMgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5LCBidXQgc3RpbGwgdW5jbGVhciBpZiBpdCBkb2Vz IG5vbi1kaXN0cmlidXRpdmVseS4gRm9yIGNvbnNpc3RlbmN5LCBpdCB3b3VsZCBiZSBiZXR0ZXIg dG8gYWRkICJ7bG9pIGJyb2RhfSBpbXBsaWVzIHRoYXQgcmVmZXJlbnQgb2YgeDEgb2YgYnJvZGEg Y29sbGVjdGl2ZWx5IGFuZCBub24tZGlzdHJpYnV0aXZlbHkgc2F0aXNmaWVzIGEgcHJlZGljYXRl IiB0byB0aGUgZGVmaW5pdGlvbiBvZiB7bG9pfS4KCgoKQXMgYSBjb25jbHVzaW9uIG9mIHRoaXMg c2VjdGlvbiwgSSBzdWdnZXN0IHRvIHJlLWRlZmluZSB7bHUnYX0gYXMgZm9sbG93czoKCjsgVW5v ZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtsdSdhfTp8fAoKbHUnYSAnJ3N1bXRpJycgfmhzfnx+aHN+ IGxvIGNtaW1hIGJlICcnc3VtdGknJyBub2kgc2VsY21pIGt1IG9uYWkgbG8gc2UgZ3VubWEgYmUg JydzdW10aScnIG5vaSBndW5tYSBrdSBvbmFpIGxvIG1lICcnc3VtdGknJyBrdSB+cHB+Cgp+L3Bw fiB+aHN+IHZ1J28gbm9pIHN1J28gZGEgem8ndSBkYSBtZSBrZSdhIGdpJ2Ugbm8nYQoKfHwKCklu IHtub2l9IGNsYXVzZSBhZnRlciB7dnUnb30sIGl0IGlzIG1hZGUgZXhwbGljaXQgdGhhdCB0aGUg cmVmZXJlbnQgb2Yge2x1J2EgJydzdW10aScnfSBkaXN0cmlidXRpdmVseSBzYXRpc2ZpZXMgdGhl IHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMgdGhpcyBzdW10aS4KCgoKISEhIyBSZWxhdGlvbiBiZXR3 ZWVuIGpvJ3UsIGpvaSwgY2UgYW5kIGdhZHJpCgooKEJQRksgU2VjdGlvbjogTm9uLWxvZ2ljYWwg Q29ubmVjdGl2ZXN8QWNjb3JkaW5nIHRvIEJQRksgU2VjdGlvbikpIHtqbyd1fSwge2pvaX0gYW5k IHtjZX0gb2Ygc2VsbWEnbyBKT0kgYXJlIGRlZmluZWQgYXMgZm9sbG93czp8fAoKX19YX18gam8n dSBfX1lfXyB+aHN+fH5oc34gbG8gc3V6bWVpIG5vaSBfX1hfXyAuZSBfX1lfXyAuZSBubyBkcmF0 YSBiZSBfX1hfXyAuZSBfX1lfXyBjdSBtZSBrZSdhCgpfX1hfXyBqb2kgX19ZX18gfmhzfnx+aHN+ IGxvIGd1bm1hIGJlIF9fWF9fIC5lIF9fWV9fIC5lIG5vIGRyYXRhIGJlIF9fWF9fIC5lIF9fWV9f CgpfX1hfXyBjZSBfX1lfXyB+aHN+fH5oc34gbG8gc2UgY21pbWEgYmUgX19YX18gLmUgX19ZX18g LmUgbm8gZHJhdGEgYmUgX19YX18gLmUgX19ZX18KCnx8CgpUaGV5IGNvcnJlc3BvbmQgcmVzcGVj dGl2ZWx5IHRvIHtsb30sIHtsb2l9LCB7bG8naX0gb2YgZ2FkcmkuIFRoZXkgY29ubmVjdCB0d28g c3VtdGk6IHtqbyd1fSBmb3JtcyBhIHBsdXJhbCBjb25zdGFudCwge2pvaX0gYSBub24tZGlzdHJp YnV0aXZlIHBsdXJhbCBjb25zdGFudCwge2NlfSBhIHBsdXJhbCBjb25zdGFudCB0aGF0IHJlZmVy cyB0byBzZXQocykgdGhhdCBjb25zaXN0KHMpIG9mIHRoZSBzdW10aSB0aGF0IHtjZX0gY29ubmVj dHMuIEluIHRoZSBFbmdsaXNoIGRlZmluaXRpb24gb2Yge2pvaX0gb2YgQlBGSywgIm5vbi1kaXN0 cmlidXRpdmUiIGlzIG1lbnRpb25lZC4gVGhpcyBmYWN0IGFsc28gc3VwcG9ydHMgdGhlIHN1Z2dl c3Rpb24gaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNl Y3Rpb24gMy4zKSkgdG8gYWRkICJ7bG9pIGJyb2RhfSBpbXBsaWVzIHRoYXQgcmVmZXJlbnQgb2Yg eDEgb2YgYnJvZGEgY29sbGVjdGl2ZWx5IGFuZCBub24tZGlzdHJpYnV0aXZlbHkgc2F0aXNmaWVz IGEgcHJlZGljYXRlIiB0byB0aGUgZGVmaW5pdGlvbiBvZiB7bG9pfS4KCgoKRXZlbiBpZiBfX1hf XyBvciBfX1lfXyBhcmUgYm91bmQgdmFyaWFibGVzLCB0aGVzZSBjb25uZWN0aXZlcyBmb3JtIGNv bnN0YW50cy4gSW4gdGhpcyBjYXNlLCBpdCBpcyBub3QgZGV0ZXJtaW5lZCB3aGV0aGVyIHRoZSBm b3JtZWQgY29uc3RhbnRzIGRlcGVuZCBvbiBfX1hfXyBhbmQgX19ZX18sIG9yIHRoZXkgYXJlIGNv bW1vbiB0byBhbGwgcmVmZXJlbnRzIGluIHRoZSBkb21haW5zIG9mIF9fWF9fIGFuZCBfX1lfXy4g U2VlICgofCNCb3VuZF92YXJpYWJsZXNfYW5kX2NvbnN0YW50c19pbl9hX3N0YXRlbWVudHxTZWN0 aW9uIDMuMi4yKSkgZm9yIGRldGFpbC4KCgoKQmVjYXVzZSB0aGV5IGFyZSBjbWF2byBpbiBzZWxt YSdvIEpPSSwgdGhleSBjYW4gY29ubmVjdCB3aGF0IGFyZSBub3Qgc3VtdGksIGJ1dCB0aGUgbWVh bmluZ3MgaW4gdGhpcyB1c2FnZSBhcmUgbm90IG9mZmljaWFsbHkgZGVmaW5lZC4gVGhleSBjYW4g Zm9ybSBhbHNvIGZvcmV0aG91Z2h0IGNvbm5lY3RpdmUge0pPSSBnaSBfX1hfXyBnaSBfX1lfX30u IFdoZW4gdGhlIGZvcmV0aG91Z2h0IGNvbm5lY3RpdmVzIGFyZSB1c2VkIGZvciBzdW10aSwgdGhl eSBmb3JtIHRoZSBzYW1lIGNvbnN0YW50cyBhcyB0aGUgYWZ0ZXJ0aG91Z2h0IHVzYWdlIGRlZmlu ZWQgYWJvdmUuCgoKCiEhIyBOb3RlcwoKVGhpcyBzZWN0aW9uIGNvbnNpc3RzIG9mIG5vdGVzIG9m IHRoZSBhdXRob3IgZ3Vza2FudCwgYW5kIGl0IGlzIG5vdCBhdCBhbGwgaW1wb3J0YW50IGZvciB1 bmRlcnN0YW5kaW5nIGdhZHJpLgoKCgohISEjIEFib3V0IG9udG9sb2d5CgpeKChCUEZLIFNlY3Rp b246IGdhZHJpfCcnUG9zaXRpdmUgaW1wYWN0OiBTb21lIHVzYWdlcyB0aGF0IG1ha2UgbGl0dGxl IHNlbnNlIHdpdGgge2xvfT17c3Unb30gYmVjb21lIHZhbGlkYXRlZC4nJykpIGFjY29yZGluZyB0 byBCUEZLLl4KCgoKe2xvfT17c3Unb30gd2FzIGFiYW5kb25lZCwgYnV0IGJlY2F1c2Ugb2YgdGhl IGZhY3QgdGhhdCB7bG8gYnJvZGF9IGlzIGEgcGx1cmFsIGNvbnN0YW50LCBhbmQgYmVjYXVzZSBv ZiBhIGxvZ2ljYWwgYXhpb20gb2YgcGx1cmFsIGNvbnN0YW50IGluICgofCNBX2xvZ2ljYWxfYXhp b21fb25fcGx1cmFsX2NvbnN0YW50fFNlY3Rpb24gMi4yLjYpKSwge2xvIGJyb2RhIGN1IGJyb2Rl fSBpbXBsaWNpdGx5IGltcGxpZXMge3N1J29pIGRhIGJyb2RlfS4KCgoKISEhIyBjbGF4dSB4MgoK XigoQlBGSyBTZWN0aW9uOiBnYWRyaXxsZSBjbWFuYSBfX2xvX18gY2lkamEgYmEgY2xheHUpKX5w cH4KCn4vcHB+ICAnJ0luIHRoZSBtb3VudGFpbnMgdGhlcmUgaXMgbm8gZm9vZC4nJ35wcH4KCn4v cHB+KChsYXBvaSBwZWx4dSBrdSdvIHRyYWp5bm9ibGkpKV4KCgoKRXhwYW5kaW5nIHtsbyBjaWRq YX0sIAoKXmxlIGNtYW5hIHpvJ2Ugbm9pIGtlJ2EgY2lkamEga3UnbyBiYSBjbGF4dV4KCkFjY29y ZGluZyB0byAoKEJQRksgU2VjdGlvbjogU3Vib3JkaW5hdG9yc3x0aGUgZGVmaW5pdGlvbiBvZiB7 bm9pfSkpLCAKCl5sZSBjbWFuYSB6bydlIHRvIHJpIHhpIHJhdSBjaWRqYSB0b2kgYmEgY2xheHVe CgpUaGUgcGFydCBiZXR3ZWVuIHt0b30gYW5kIHt0b2l9IGlzIGEgcGFyZW50aGV0aWNhbCBleHBy ZXNzaW9uLiBUaGUgbWFpbiBwcm9wb3NpdGlvbiBpcyB0aHVzCgpebGUgY21hbmEgem8nZSBiYSBj bGF4dV4KCndoZXJlIHt6bydlfSBpcyBhIHBsdXJhbCBjb25zdGFudC4gQWNjb3JkaW5nIHRvIHRo ZSBsb2dpY2FsIGF4aW9tIG9mIHBsdXJhbCBjb25zdGFudCBpbiAoKHwjQV9sb2dpY2FsX2F4aW9t X29uX3BsdXJhbF9jb25zdGFudHxTZWN0aW9uIDIuMi42KSksIFRoaXMgcHJvcG9zaXRpb24gaW1w bGllcyAKCl5zdSdvaSBkYSB6byd1IGxlIGNtYW5hIGRhIGJhIGNsYXh1XgoKd2hpY2ggbWVhbnMg dGhhdCB0aGVyZSBpcyBhIHJlZmVyZW50IG9mICJ3aGF0IGlzIGxhY2tlZCBieSB0aGUgbW91bnRh aW4iIGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuCgpUaGUgc3RyYW5nZW5lc3MgY29tZXMg ZnJvbSB0aGUgZmFjdCB0aGF0IHgyIG9mIHtjbGF4dX0gX19hcHBhcmVudGx5X18gbWVhbnMgbm9u LWV4aXN0ZW5jZS4gV2UgY2FuIGludGVycHJldCBpdCBjb25zaXN0ZW50bHkgdGhhdCB7Y2xheHV9 IG1lYW5zIG9ubHkgdGhhdCB0aGUgcmVmZXJlbnQgb2YgeDIgaXMgbm90IHBsYWNlZCBhdCB0aGUg cmVmZXJlbnQgb2YgeDEsIGFuZCBpdCBzYXlzIG5vdGhpbmcgYWJvdXQgZXhpc3RlbmNlIGluIHRo ZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIAoKCgohISEjIHpvJ2UgaXMgYSBwbHVyYWwgY29uc3Rh bnQKCkFzc3VtaW5nIHRoYXQge3pvJ2V9IGNhbiBiZSBhbnkgb2YgZnJlZSB2YXJpYWJsZSwgYm91 bmQgcGx1cmFsIHZhcmlhYmxlIG9yIHBsdXJhbCBjb25zdGFudCwgdGhlIGxhbmd1YWdlIHdvdWxk IGJlIG1vcmUgcmVhc29uYWJsZSBmcm9tIGEgbG9naWNhbCBwb2ludCBvZiB2aWV3LgoKSG93ZXZl ciwgdGhpcyBpZGVhIHdhcyBjbGVhcmx5IGRlbmllZCBpbiBbaHR0cHM6Ly9ncm91cHMuZ29vZ2xl LmNvbS9kL3RvcGljL2xvamJhbi9SQXRFN1lrLWRxdy9kaXNjdXNzaW9ufHRoZSBkaXNjdXNzaW9u XS4gVGhhdCBpcyB0byBzYXksIHt6bydlfSBpcyBhbHdheXMgYSBwbHVyYWwgY29uc3RhbnQgYWNj b3JkaW5nIHRvIHRoZSBvZmZpY2lhbCBpbnRlcnByZXRhdGlvbi4KCkkgd2lsbCBleGFtaW5lIHRo ZXNlIGNvbmZsaWN0aW5nIGlkZWFzLCBhbmQgdHJ5IHRvIHNvbHZlIHNvbWUgcHJvYmxlbXMgY2F1 c2VkIGJ5IHRoZSBvZmZpY2lhbCBpbnRlcnByZXRhdGlvbiB0aGF0IHt6bydlfSBpcyBhIHBsdXJh bCBjb25zdGFudC4KCgoKISEhISMgSWYgem8nZSBjb3VsZCBiZSBhIGJvdW5kIHBsdXJhbCB2YXJp YWJsZQoKSSB3aWxsIGxpc3QgdXAgaGVyZSBtZXJpdHMgYW5kIGRlbWVyaXRzIG9mIGFzc3VtaW5n IHRoYXQge3pvJ2V9IGluIG5vIGNvbnRleHQgaXMgYSBmcmVlIHZhcmlhYmxlLCBhbmQgdGhhdCB0 aGUgY29udGV4dCBkZXRlcm1pbmVzIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGJhc2VkIG9u IHdoaWNoIHt6bydlfSBpcyByZWdhcmRlZCBhcyBzdWJzdGl0dXRlZCBmb3IgYnkgYSBwbHVyYWwg Y29uc3RhbnQsIG9yIGJvdW5kIGJ5IGEgcGx1cmFsIHF1YW50aWZpZXIuCgoKCiEhISEhIyBNZXJp dHMKClVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgdGhlcmUgaXMgbm8gbmVlZCB0byBleGNsdWRlIHRo ZSBjYXNlIFBBPTAgb2Yge2xvIFBBIGJyb2RhfSwgb3IgZ2l2ZSBpdCBhbiB1bm9mZmljaWFsIGRl ZmluaXRpb24gYXMgZGlzY3Vzc2VkIGluICgofCNDYW5ub3Rfc2F5X3plcm98U2VjdGlvbiAzLjEu Mi4xKSkuIEl0IGlzIGJlY2F1c2UgaWYge2xvIFBBIGJyb2RhfSBpbiBubyBjb250ZXh0IGlzIGEg ZnJlZSB2YXJpYWJsZSwgd2UgY2FuIGludGVycHJldCBpdCwgd2hlbiBhIGNvbnRleHQgaXMgZ2l2 ZW4sIGFzIHN1YnN0aXR1dGVkIGZvciBieSBhIHBsdXJhbCBjb25zdGFudCBvciBib3VuZCBieSBh IHBsdXJhbCBxdWFudGlmaWVyIGxpa2Uge3N1J29pIGRhfSBpbiB0aGUgY2FzZSBvZiBQQT4wOyB3 ZSBjYW4gaW50ZXJwcmV0IGl0IGFzIGJvdW5kIGJ5IHtuYWt1IHN1J29pIGRhfSBpbiB0aGUgY2Fz ZSBvZiBQQT0wIGFzIHdlbGwuCgoKClRoaXMgYXNzdW1wdGlvbiBtYWtlcyB0aGUgaW50ZXJwcmV0 YXRpb24gY2xvc2VyIHRvIG5hdHVyYWwgbGFuZ3VhZ2VzIG5vdCBvbmx5IGluIHRoZSBjYXNlIFBB PTAgYnV0IGFsc28gaW4gdGhlIGNhc2UgUEE+MC4gRm9yIGV4YW1wbGUsIAoKXmxvIGNpIHhhbnRv IGN1IHppbGthbmN1IGxpIGNpIGxvIHhhbnRvXgoKVGhlIGxhc3Qge2xvIHhhbnRvfSBpcyBhIHVu aXQgb2YgY291bnRpbmcuIEl0IGlzIG5hdHVyYWwgdG8gaW50ZXJwcmV0IGl0IGFzIGEgYm91bmQg cGx1cmFsIHZhcmlhYmxlIHF1YW50aWZpZWQgYnkgIjEiIHJhdGhlciB0aGFuIGEgcGx1cmFsIGNv bnN0YW50LCB3aGljaCBzaG91bGQgcmVmZXIgdG8gc29tZXRoaW5nLiBJZiB3ZSBpbnRlcnByZXQg aXQgYXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUsIHdlIHNob3VsZCBjb25zaWRlciB0aGUgcmVs YXRpdmUgb3JkZXIgd2l0aCB0aGUgb3RoZXIgYm91bmQgdmFyaWFibGVzIGFuZCB7bmFrdX0uIFdl IGNhbiBoYW5kbGUgdGhlIG9yZGVyIGZyZWVseSBieSBwdXR0aW5nIHRoZSBhcmd1bWVudHMgaW4g cHJlbmV4LgoKCgpNb3Jlb3ZlciwgdGhpcyBhc3N1bXB0aW9uIGVtYm9kaWVzIHRoZSBwcm9wZXJ0 eSBvZiBuYXR1cmFsIGxhbmd1YWdlcyB0aGF0IHRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0 aW9uIGluIG5vIGNvbnRleHQgaXMgZ2VuZXJhbGx5IGluZGVmaW5pdGUuIEJ5IGludGVycHJldGlu ZyB0aGF0IHt6bydlfSBpbiBubyBjb250ZXh0IGlzIGEgZnJlZSB2YXJpYWJsZSwgd2hpY2ggd2ls bCBiZSBzdWJzdGl0dXRlZCBmb3IgYnkgYSBwbHVyYWwgY29uc3RhbnQgb3IgYm91bmQgYnkgYSBw bHVyYWwgcXVhbnRpZmllciB3aGVuIGEgY29udGV4dCBpcyBnaXZlbiwgbmF0dXJhbCBpbnRlcnBy ZXRhdGlvbiBvZiBMb2piYW4gc2VudGVuY2UgaXMgcG9zc2libGUgd2l0aG91dCBsb3NpbmcgbG9n aWNhbCBhc3BlY3RzIGFuZCBzdHJ1Y3R1cmFsIGJlYXV0eS4KCgoKISEhISEjIERlbWVyaXRzCgpC ZWNhdXNlIHt6bydlfSBjYW4gYmUgYSBmcmVlIHZhcmlhYmxlLCBhIGJvdW5kIHBsdXJhbCB2YXJp YWJsZSBvciBhIHBsdXJhbCBjb25zdGFudCBkZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGEgc2lu Z2xlIGJyaWRpIGRvZXMgbm90IGxldCBsaXN0ZW5lcnMgZGV0ZXJtaW5lIHdoaWNoIG9mIHRoZW0g aXMgdGhlIGN1cnJlbnQge3pvJ2V9LCBvciB0aGUgdHJ1dGggdmFsdWUgb2YgdGhlIHByb3Bvc2l0 aW9uLgoKSG93ZXZlciwgc3VjaCBhbiBhc3BlY3QgdGhhdCB0aGUgdHJ1dGggdmFsdWUgb2YgYSBw cm9wb3NpdGlvbiBnZW5lcmFsbHkgZGVwZW5kcyBvbiB0aGUgY29udGV4dCBpcyBhIGNvbW1vbiBw cm9wZXJ0eSB0byBhbGwgbmF0dXJhbCBsYW5ndWFnZXMuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBl dmVuIGlmIHdlIHRha2UgdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlz IGFsd2F5cyBhIHBsdXJhbCBjb25zdGFudCwgbGlzdGVuZXJzIGFyZSBvbmx5IGluZm9ybWVkIGJ5 IHt6bydlfSB0aGF0IGEgY2VydGFpbiB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgaXMgZ2l2ZW4uIFdp dGggbm8gY29udGV4dCwgdGhlcmUgaXMgbm8gd2F5IHRvIGRldGVybWluZSB3aGF0IGlzIHRoZSB1 bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIFRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGlu IG5vIGNvbnRleHQgaXMgaW5kZWZpbml0ZSBldmVuIHdpdGggdGhlIG9mZmljaWFsIGludGVycHJl dGF0aW9uLgoKCgohISEhIyBQcm9ibGVtcyBjYXVzZWQgYnkgdGhlIGZhY3QgdGhhdCB6bydlIGlz IGEgcGx1cmFsIGNvbnN0YW50IGFuZCB0aGUgY291bnRlci1tZWFzdXJlcwoKVGhlIG9mZmljaWFs IGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50IGNhdXNlcyB0 aGUgZm9sbG93aW5nIHByb2JsZW1zLgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgcGx1cmFsIHF1 YW50aWZpY2F0aW9uIG9mIG5vbi1leGlzdGVuY2UKClJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb24g b2Yge2xvIG5vIGJyb2RhfSBpcyBvZmZpY2lhbGx5IGV4Y2x1ZGVkIGZyb20gTG9qYmFuLiBUaGF0 IGlzIHRvIHNheSwgTG9qYmFuIGNhbm5vdCBvZmZpY2lhbGx5IGRlYWwgd2l0aCB0aGUgZXhwcmVz c2lvbiAidGhlcmUgaXMgbm90IHdoYXQgaXMgc3Vic3RpdHV0ZWQgZm9yIHtkYX0iIGZvciBwbHVy YWwgdmFyaWFibGUgKHtuYWt1IHN1J29pIGRhfSksIHdoaWNoIGlzIG5hdHVyYWxseSBkZWFsdCB3 aXRoIGJ5IHBsdXJhbCBxdWFudGlmaWNhdGlvbi4gSW4gb3JkZXIgdG8gZXhwcmVzcyB7bG8gbm8g YnJvZGF9IHdpdGggcmVhc29uYWJsZSBpbnRlcnByZXRhdGlvbiwgd2UgbmVlZCBhbiB1bm9mZmlj aWFsIGludGVycHJldGF0aW9uIGxpa2UgKCh8I0Nhbm5vdF9zYXlfemVyb3xTZWN0aW9uIDMuMS4y LjEpKS4KCgoKISEhISEjIENhbm5vdCBleHByZXNzIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgd2hp Y2ggZG9lcyBub3Qgc3BlY2lmeSBhIHJlZmVyZW50CgpCZWNhdXNlIHRoZSBvZmZpY2lhbCBpbnRl cnByZXRhdGlvbiBkb2VzIG5vdCBhbGxvdyB7bG8gUEEgYnJvZGF9IHRvIGJlIGEgYm91bmQgcGx1 cmFsIHZhcmlhYmxlIGRlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgYW4gYXJndW1lbnQgdGhhdCBz aG91bGQgcmVmZXIgdG8gbm90aGluZywgYSB1bml0IG9mIGNvdW50aW5nIGZvciBleGFtcGxlLCBz aG91bGQgYmUgaW50ZXJwcmV0ZWQgYXMgYSBwbHVyYWwgY29uc3RhbnQsIHdoaWNoIHJlZmVycyB0 byBzb21ldGhpbmcuIEZvciBleGFtcGxlIAoKXmxvIGNpIHhhbnRvIGN1IHppbGthbmN1IGxpIGNp IGxvIHhhbnRvXgoKZm9yIHdoaWNoIHdlIGFyZSBjb21wZWxsZWQgdG8gaW50ZXJwcmV0IHRoYXQg dGhlcmUgaXMgdGhlICJFbGVwaGFudCBkZXMgQXJjaGl2ZXMiIGluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2UsIGp1c3QgbGlrZSB0aGUgIk3DqHRyZSBkZXMgQXJjaGl2ZXMiIChhbHRob3VnaCBp dCBoYXMgYWxyZWFkeSBmaW5pc2hlZCBpdHMgcm9sZSksIGluIG9yZGVyIHRvIHVzZSB7bG8geGFu dG99IGFzIGEgdW5pdCBpbiBhIHByb3Bvc2l0aW9uLgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3Mg ZWxlbWVudGFyeSBwYXJ0aWNsZXMgd2l0aCBsbwoKQXMgbG9uZyBhcyB7bG8gYnJvZGF9IGlzIGlu dGVycHJldGVkIGFzIGEgcGx1cmFsIGNvbnN0YW50LCB0aGUgZm9sbG93aW5nIExvamJhbiBzZW50 ZW5jZSBpcyBtZWFuaW5nbGVzczoKCgoKXmxvIGd1c2thJ3UgY3UgZ2F1IGptYWppIHNlcGknbyBs byBsZW5qbyBnaSdlIHBhZ3JlIGxvIGZlbnJhfnBwfgoKfi9wcH4nJ1Bob3RvbnMgYXJlIGNvbmRl bnNlZCBieSBsZW5zZXMsIGFuZCBwYXNzIHRocm91Z2ggc2xpdHMuJydeCgoKCkFjdHVhbGx5LCBw aG90b25zIGFyZSBpbmRpdmlkdWFscywgYW5kIHdlIGNhbiBjb3VudCB0aGVtLCBidXQgd2UgY2Fu bm90IGRpc3Rpbmd1aXNoIGVhY2ggb2YgdGhlbTogd2UgY2Fubm90IHJlZmVyIHRvIGEgc3BlY2lm aWMgcGhvdG9uLiBRdWFudGlmaWNhdGlvbiBpcyBpbmRlZWQgc3VpdGFibGUgZm9yIGFyZ3VtZW50 cyB0aGF0IHJlcHJlc2VudCBwYXJ0aWNsZXMgbGlrZSBwaG90b25zLiBIb3dldmVyLCBMb2piYW4g b2ZmaWNpYWxseSBkb2VzIG5vdCBoYXZlIGEgcGx1cmFsIHF1YW50aWZpZXIsIGFuZCBjYW5ub3Qg ZXhwcmVzcyBxdWFudGlmaWNhdGlvbiBvZiAgc3VtdGkgdGhhdCBzYXRpc2ZpZXMgc2VsYnJpIGJv dGggY29sbGVjdGl2ZWx5IGFuZCBkaXN0cmlidXRpdmVseS4gTW9yZW92ZXIsIGJlY2F1c2Uge2xv IGJyb2RhfSBpcyBvZmZpY2lhbGx5IGFsd2F5cyBhIHBsdXJhbCBjb25zdGFudCwgdGhlcmUgaXMg bm8gcm9vbSB0byBpbnRlcnByZXQge2xvIGd1c2thJ3V9IGFzIGEgYm91bmQgcGx1cmFsIHZhcmlh YmxlLiBJbiBvcmRlciB0byBzb2x2ZSB0aGUgcHJvYmxlbSwgd2Ugc2hvdWxkIHVzZSBhbiB1bm9m ZmljaWFsIHBsdXJhbCBxdWFudGlmaWVyIHtzdSdvaX0gc3VnZ2VzdGVkIGJ5ICgoeG9yeGVzfGxh IHhvcnhlcykpLgoKCgpec3Unb2kgZGEgcG9pIGtlJ2EgZ3Vza2EndSBjdSBnYXUgam1hamkgc2Vw aSdvIGxvIGxlbmpvIGdpJ2UgcGFncmUgbG8gZmVucmFeCgoKCiEhISEhIyBIb3cgdG8gaW50ZXJw cmV0IGEgcHJldmFpbGluZyB2aWV3CgpUaGUgZm9sbG93aW5nIGV4YW1wbGUgaXMgZ2l2ZW4gb24g KChCUEZLIFNlY3Rpb246IGdhZHJpfEJQRksncyBnYWRyaSBwYWdlKSk6CgoKCl5sbyBwYSBwaXhy YSBjdSBzZSB2YW1qaSBsbyBraSdvIHZhbHNpfnBwfgoKfi9wcH4nJ09uZSBwaWN0dXJlIGlzIHdv cnRoIGEgdGhvdXNhbmQgd29yZHMuJycgXgoKCgpFdmVuIGluIHN1Y2ggYSBzZW50ZW5jZSB0aGF0 IHNlZW1zIGEgcHJldmFpbGluZyB2aWV3LCB7bG8gcGEgcGl4cmF9IGFuZCB7bG8ga2knbyB2YWxz aX0gYXJlIGludGVycHJldGVkIGFzIHJlZmVycmluZyB0byBzb21ldGhpbmcuIFdlIHNob3VsZCBw cmVwYXJlIHNvbWUgcmVmZXJlbnRzIG9mIHN1bXRpIG9mIGEgcHJldmFpbGluZyB2aWV3IGluIHRo ZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuCgoKCkludHVpdGlvbmFsbHkgc3BlYWtpbmcsIHdlIG1h eSB1c2Uge2xvJ2V9IGluc3RlYWQgb2Yge2xvfSwgYnV0IHdlIGNhbm5vdCB5ZXQgZXhwbGFpbiB7 bG8nZX0gZnJvbSBhIGxvZ2ljYWwgcG9pbnQgb2YgdmlldyBiZWNhdXNlICgoQlBGSyBTZWN0aW9u OiBUeXBpY2Fsc3xhY3R1YWxseSB0aGVyZSBpcyBubyBvZmZpY2lhbCBjb25jbHVzaW9uIGFib3V0 IHJlbGF0aW9uIGJldHdlZW4ge2xvJ2V9IGFuZCB7bG99KSkuCgoKCkFzIGEgbWV0aG9kIG9mIGF2 b2lkaW5nIG1lbnRpb24gb2YgYSByZWZlcmVudCBpbiBhbiBleHByZXNzaW9uIG9mIHByZXZhaWxp bmcgdmlldywgd2UgbWF5IHB1dCB0aGUgd2hvbGUgcHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlLiBJ biBmYWN0LCB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIE5VIGNsYXVzZSBkb2VzIG5v dCBpbmZsdWVuY2UgdHJ1dGggdmFsdWUgb2YgdGhlIG91dGVyIHByb3Bvc2l0aW9uIChyZWZlcmVu dGlhbGx5IG9wYXF1ZTsgdGhpcyB0b3BpYyBpcyByZWxhdGVkIHRvIFtodHRwOi8vZGFnLmdpdGh1 Yi5pby9jbGwvOS83L3xDTEw5LjddKS4gSW4gb3RoZXIgd29yZHMsIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2Ugb2YgYSBwcm9wb3NpdGlvbiBpbiBOVSBjbGF1c2UgaXMgZGlmZmVyZW50IGZyb20g dGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBvZiBhIHByb3Bvc2l0aW9uIG91dCBvZiBOVS4KCklm IHdlIGFjY2VwdCB0aGlzIG1ldGhvZCwgdGhlIGV4YW1wbGUgYWJvdmUgd2lsbCBiZSBtb2RpZmll ZCwgdXNpbmcge3NpJ299IGZvciBleGFtcGxlLCBhcyBmb2xsb3dzOgoKCgpec2knbyBsbyBwYSBw aXhyYSBjdSBzZSB2YW1qaSBsbyBraSdvIHZhbHNpIH5wcH4KCn4vcHB+JydJcyBhbiBpZGVhIHRo YXQgb25lIHBpY3R1cmUgaXMgd29ydGggYSB0aG91c2FuZCB3b3Jkcy4nJ14KCgoKd2hlcmUgeDEg b2Yge3NpJ299IGlzIGltcGxpY2l0IHt6bydlfSwgd2hpY2ggaGFzIGEgcmVmZXJlbnQgaW4gdGhl IHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4gQXMgYW4gaW50ZXJwcmV0YXRpb24gb2YgYSBwcmV2YWls aW5nIHZpZXcsIHN1cHBvc2luZyBhIHJlZmVyZW50IG9mIHgxIG9mIHtzaSdvfSBpcyBtb3JlIG5h dHVyYWwgdGhhbiBzdXBwb3NpbmcgYSByZWZlcmVudCBvZiB7bG8gcGEgcGl4cmF9IG9yIHtsbyBr aSdvIHZhbHNpfS4KCihTdWNoIGEgYnJpZGkgd2l0aCBubyB0ZXJicmkgaXMgY2FsbGVkICJvYnNl cnZhdGl2ZSIgaW4gKChUaGUgQ29tcGxldGUgTG9qYmFuIExhbmd1YWdlKSksIGJ1dCB0aGlzIGlu dGVycHJldGF0aW9uIGlzIG5vdCBzdWl0YWJsZSBoZXJlLCBiZWNhdXNlIHRoaXMgaXMgbm90IHRo ZSB1dHRlcmFuY2UgdGhhdCBpcyBhbHdheXMgY2F1c2VkIGJ5IGEgc3BlY2lmaWMgc3RpbXVsdXMu KQoKCgohISEhISMgSG93IHRvIGV4cHJlc3MgZnJlZSB2YXJpYWJsZXMKCkFzIGEgY3VzdG9tLCBr bydWL2ZvJ1Ygc2VyaWVzIG9mIEtPaEE0IGFyZSB1c2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIGRl ZmluaXRpb25zIG9mIHdvcmRzIG9yIHNvbWV0aGluZy4gSG93ZXZlciwgdGhleSBhcmUgYWN0dWFs bHkgcGx1cmFsIGNvbnN0YW50cy4KCklmIHdlIGFiYW5kb24gdGhpcyBjdXN0b20sIHtrZSdhfSBh bmQge2NlJ3V9IGFyZSBzdWl0YWJsZSBmb3IgZXhwcmVzc2lvbiB3aXRoIGZyZWUgdmFyaWFibGVz IChvcGVuIHNlbnRlbmNlKSwgYmVjYXVzZSB0aGUgdHJ1dGggdmFsdWUgb2YgYnJpZGkgaW4gd2hp Y2gge2tlJ2F9IG9yIHtjZSd1fSBpcyB1c2VkIGlzIGluZGVmaW5pdGUuIAoKSW4gYSBicmlkaSBp biB3aGljaCB7a2UnYX0gYXBwZWFycyB0d28gdGltZXMgb3IgbW9yZSwgdGhlc2Uge2tlJ2F9cyBh cmUgcmVnYXJkZWQgYXMgcmVwcmVzZW50aW5nIGFuIGlkZW50aWNhbCBzdW10aToKCl5kYSBwb2kg a2UnYSBneSB4bHVyYSBrZSdhIGN1IHBhbmNpIGxvIGthJ2Ugc2UgY2l0a2F+cHB+Cgp+L3Bwfn4t LX4gKChsbyBudSBiaW54bykpXgoKT24gdGhlIG90aGVyIGhhbmQsIGluIGEgYnJpZGkgaW4gd2hp Y2gge2NlJ3V9IGFwcGVhcnMgdHdvIHRpbWVzIG9yIG1vcmUsIHRoZXNlIHtjZSd1fXMgYXJlIG5v dCBuZWNlc3NhcmlseSByZWdhcmRlZCBhcyByZXByZXNlbnRpbmcgYW4gaWRlbnRpY2FsIHN1bXRp OgoKXmxvIG1hbXRhIGpvJ3UgbG8gbWVuc2kgY3Ugc2lteHUgbG8ga2EgY2UndSBjaXNtYSBmYSdh IGNlJ3V+cHB+Cgp+L3Bwfn4tLX4gKChsbyBudSBiaW54bykpXgoKQ29uc2lkZXJpbmcgdGhlc2Ug cHJvcGVydGllcywgaW4gb3JkZXIgdG8gZXhwcmVzcyBhbiBvcGVuIHNlbnRlbmNlIHdpdGggZnJl ZSB2YXJpYWJsZXMgaW4gbm8gY29udGV4dCwge2NlJ3V9IGlzIG1vcmUgY29udmVuaWVudCB0aGFu IHtrZSdhfSB3aGljaCBoYXMgcmVzdHJpY3Rpb24gb2YgaWRlbnRpY2FsIHN1bXRpLgoKXmNlJ3Ug Y2UndSBjaXRrYX5wcH4KCn4vcHB+JydBIGVhdHMgQi4nJyAoT3BlbiBzZW50ZW5jZSwgdHJ1dGgg dmFsdWUgaW5kZWZpbml0ZS4pXgoKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KV2lraW5ldXJvdGljIG1haWxpbmcgbGlzdApXaWtpbmV1cm90aWNAbG9q YmFuLm9yZwpodHRwOi8vbWFpbC5sb2piYW4ub3JnL21haWxtYW4vbGlzdGluZm8vd2lraW5ldXJv dGljCg==