Received: from localhost ([::1]:39647 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1WrUmF-00043E-5y; Mon, 02 Jun 2014 09:07:59 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:42146 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1WrUm4-00042O-Tg for wikichanges@lojban.org; Mon, 02 Jun 2014 09:07:57 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Mon, 02 Jun 2014 09:07:48 -0700 From: "Apache" Date: Mon, 02 Jun 2014 09:07:48 -0700 To: wikichanges@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 16:07 UTC 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 ---- ---------------------- -------------------------------------------------- 0.0 RCVD_IN_DNSWL_BLOCKED RBL: ADMINISTRATOR NOTICE: The query to DNSWL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [173.13.139.235 listed in list.dnswl.org] 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: [Wikichanges] Wiki page gadri: an unofficial commentary from a logical point of view changed by guskant X-BeenThere: wikichanges@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: wikichanges-bounces@lojban.org VGhlIHBhZ2UgZ2Fkcmk6IGFuIHVub2ZmaWNpYWwgY29tbWVudGFyeSBmcm9tIGEgbG9naWNhbCBw b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMTY6MDcgVVRDCgpZb3UgY2Fu IHZpZXcgdGhlIHBhZ2UgYnkgZm9sbG93aW5nIHRoaXMgbGluazoKIApodHRwOi8vd3d3LmxvamJh bi5vcmcvdGlraS9nYWRyaSUzQSUyMGFuJTIwdW5vZmZpY2lhbCUyMGNvbW1lbnRhcnklMjBmcm9t JTIwYSUyMGxvZ2ljYWwlMjBwb2ludCUyMG9mJTIwdmlldwoKWW91IGNhbiB2aWV3IGEgZGlmZiBi YWNrIHRvIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGJ5IGZvbGxvd2luZyB0aGlzIGxpbms6IApodHRw Oi8vd3d3LmxvamJhbi5vcmcvdGlraS90aWtpLXBhZ2VoaXN0b3J5LnBocD9wYWdlPWdhZHJpJTNB JTIwYW4lMjB1bm9mZmljaWFsJTIwY29tbWVudGFyeSUyMGZyb20lMjBhJTIwbG9naWNhbCUyMHBv aW50JTIwb2YlMjB2aWV3JmNvbXBhcmU9MSZvbGR2ZXI9MTQmbmV3dmVyPTE1CgoKKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKVGhlIGNo YW5nZXMgaW4gdGhpcyB2ZXJzaW9uIGZvbGxvdyBiZWxvdywgZm9sbG93ZWQgYWZ0ZXIgYnkgdGhl IGN1cnJlbnQgZnVsbCBwYWdlIHRleHQuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiA0MzItNDQwIGNoYW5n ZWQgdG8gK0xpbmVzOiA0MzItNDQwIEBACistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCldoZW4gYm90aGUgYm91bmQgdmFyaWFibGVzIGFu ZCBjb25zdGFudHMgYXBwZWFyIGluIGEgc3RhdGVtZW50LCB0aGUgY29uc3RhbnRzIGRvIG5vdCBu ZWNlc3NhcmlseSBzcGFuIG92ZXIgYWxsIGJvdW5kIHZhcmlhYmxlcy4gQWx0aG91Z2ggdGhleSBh cmUgY2FsbGVkICJjb25zdGFudHMiLCBpdCBpcyBub3QgZ2VuZXJhbGx5IGRldGVybWluZWQgd2hl dGhlciB0aGV5IHJlZmVyIHRvIGNvbW1vbiByZWZlcmVudHMgZm9yIGFsbCByZWZlcmVudHMgaW4g ZG9tYWlucyBvZiB2YXJpYWJsZXMsIG9yIHRoZXkgcmVmZXIgdG8gZGlmZmVyZW50IHJlZmVyZW50 cyBkZXBlbmRlbnQgb24gcmVmZXJlbnRzIGluIGRvbWFpbnMgb2YgdmFyaWFibGVzLiBUaGUgcmVh c29uIGZvbGxvd3MgYmVsb3cgKFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnL2xvamJh bi9SQXRFN1lrLWRxdy9BQkRmT2Z1b3pXRUp8RGlzY3Vzc2lvbl0pLgoKLSBXaGVuIHNvbWUgc3Vt dGkgb2YgdGVyYnJpIGluIGEgc3RhdGVtZW50IGFyZSBvbW1pdHRlZCwgaXQgaXMgY29uc2lkZXJl ZCB0aGF0IHRoZXJlIGFyZSBpbXBsaWNpdCB7em8nZX0gaW4gdGhvc2UgcGxhY2VzIChbaHR0cDov L2RhZy5naXRodWIuaW8vY2xsLzcvNy98Q0xMIDcuN10pLgorIFdoZW4gc29tZSBzdW10aSBvZiB0 ZXJicmkgaW4gYSBzdGF0ZW1lbnQgYXJlIG9taXR0ZWQsIGl0IGlzIGNvbnNpZGVyZWQgdGhhdCB0 aGVyZSBhcmUgaW1wbGljaXQge3pvJ2V9IGluIHRob3NlIHBsYWNlcyAoW2h0dHA6Ly9kYWcuZ2l0 aHViLmlvL2NsbC83LzcvfENMTCA3LjddKS4KRm9yIGV4YW1wbGUsCl5ybyBtbGF0dSBjdSBqYmVu YX5wcH4Kfi9wcH4gICcnQWxsIGNhdHMgYXJlL3dpbGwgYmUgYm9ybi4nJ14KLSBzZWVtcyB0byBi ZSB0cnVlIGZyb20gYSBzdGFuZGFyZCBwb2ludCBvZiB2aWV3LiBBY2NvcmRpbmcgdG8gZGVmaW5p dGlvbiBvZiB0ZXJicmkgb2Yge2piZW5hfSwgaXQgaXMgY29uc2lkZXJlZCB0aGF0IHRocmVlIHN1 bXRpIGFyZSBvbW1pdHRlZCwgYW5kIHRoaXMgc3RhdGVtZW50IGhhcyB0aGUgc2FtZSBtZWFuaW5n IGFzCisgc2VlbXMgdG8gYmUgdHJ1ZSBmcm9tIGEgc3RhbmRhcmQgcG9pbnQgb2Ygdmlldy4gQWNj b3JkaW5nIHRvIGRlZmluaXRpb24gb2YgdGVyYnJpIG9mIHtqYmVuYX0sIGl0IGlzIGNvbnNpZGVy ZWQgdGhhdCB0aHJlZSBzdW10aSBhcmUgb21pdHRlZCwgYW5kIHRoaXMgc3RhdGVtZW50IGhhcyB0 aGUgc2FtZSBtZWFuaW5nIGFzCl5ybyBtbGF0dSBjdSBqYmVuYSB6bydlIHpvJ2Ugem8nZV4KaW4g d2hpY2gge3pvJ2V9IGFyZSBleHBsaWNpdC4gCgoKCgoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpUaGUgbmV3IHBhZ2UgY29udGVudCBm b2xsb3dzIGJlbG93LgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgoKKChCUEZLIFNlY3Rpb246IGdhZHJpfEJQRksncyBnYWRyaSBwYWdl KSkgY29udGFpbnMgZXhwcmVzc2lvbnMgbWlzbGVhZGluZyBwZW9wbGUgd2hvIGhhdmUgYXQgbGVh c3QgYSBsaXR0bGUga25vd2xlZGdlIG9mIGxvZ2ljIChbaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNv bS9kL3RvcGljL2xvamJhbi9SQXRFN1lrLWRxdy9kaXNjdXNzaW9ufGRpc2N1c3Npb25dKS4KCkkg d2lsbCBtYWtlIGhlcmUgYSBjb21tZW50YXJ5IG9uIEJQRksncyBnYWRyaSBzbyB0aGF0IGl0IGlz IHVuZGVyc29vZCBieSB0aGVtIGNvcnJlY3RseS4KCgoKe21ha2V0b2N9CgoKCiEhIyBHbG9zc2Fy eQoKV2Ugd2lsbCB1c2UgdGhlIGZvbGxvd2luZyB0ZXJtcyBpbiB0aGlzIGNvbW1lbnRhcnkuCgo7 X19hcmd1bWVudCAoc3VtdGkpX186IFN5bWJvbCB0aGF0IHJlZmVycyB0byBhIHJlZmVyZW50LCBv ciB0aGF0IGFub3RoZXIgYXJndW1lbnQgY2FuIGJlIHN1YnN0aXR1dGVkIGZvci4KCl5HcmFtbWF0 aWNhbGx5LCBhbGwgdGhlc2UgYXJlIHN1bXRpOiBhcmd1bWVudHMsIHt6aSdvfSB3aGljaCByZW1v dmVzIGEgcGxhY2UgZm9yIGFuIGFyZ3VtZW50LCB7a299IHdoaWNoIHJlZmVycyB0byBsaXN0ZW5l cihzKSBhbmQgZm9ybXMgaW1wZXJhdGl2ZSwge21hfSB3aGljaCBmb3JtcyBpbnRlcnJvZ2F0aXZl IHRvIGFzayB3aGljaCBzdW10aSBtYWtlcyB0aGUgc3RhdGVtZW50IHRydWUsIHN1bXRpIGFuZCBy ZWxhdGl2ZSBjbGF1c2VzICh7em8nZSBub2kgYnJvZGF9Li4uKSwgcXVhbnRpZmllciBhbmQgc3Vt dGkvc2VsYnJpICh7bm9kYX0sIHtjaSBsbyBicm9kYX0sIHtybyBicm9kYX0uLi4pICwgc3VtdGkg Y29ubmVjdGVkIGJ5IGNvbm5lY3RpdmVzICh7a28nYSAuZSBrbydlfS4uLikuIEhvd2V2ZXIsIGlu IHRoaXMgYXJ0aWNsZSwgInN1bXRpIiByZWZlcnMgdG8gYW4gYXJndW1lbnQgb2YgbG9naWMgcmVw cmVzZW50ZWQgaW4gTG9qYmFuLl4KCjtfX3VuaXZlcnNlIG9mIGRpc2NvdXJzZV9fOiBTZXQgb2Yg YWxsIHJlZmVyZW50cyBvZiBhcmd1bWVudHMuIEl0IGlzIG5hdHVyYWxseSBhIHVuaXZlcnNlIHRo YXQgaXMgZGlzY3Vzc2VkLiBBIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBkZXBlbmRzIG9uIHRoZSBj b250ZXh0LgoKO19fY29uc3RhbnRfXzogQXJndW1lbnQgdGhhdCByZWZlcnMgdG8gYSByZWZlcmVu dC4KCjtfX3ZhcmlhYmxlX186IEFyZ3VtZW50IGFzIGEgcGxhY2UgaG9sZGVyLiBJdCBkb2VzIG5v dCByZWZlciB0byBhbnl0aGluZy4gSXQgaXMgdG8gYmUgc3Vic3RpdHV0ZWQgZm9yLiBWYXJpYWJs ZSBvdGhlciB0aGFuIGJvdW5kIHZhcmlhYmxlIHRoYXQgd2lsbCBiZSBkZWZpbmVkIGJlbGxvdyBp cyBjYWxsZWQgX19mcmVlIHZhcmlhYmxlX18uIFRoZSB0cnV0aCB2YWx1ZSBvZiBhIHNlbnRlbmNl IHRoYXQgaW5jbHVkZXMgYSBmcmVlIHZhcmlhYmxlIGlzIGluZGVmaW5pdGUuIFN1Y2ggYSBzZW50 ZW5jZSBpcyBjYWxsZWQgX19vcGVuIHNlbnRlbmNlX18uCgpeSW4gTG9qYmFuLCB7a2UnYX0gYW5k IHtjZSd1fSBhcmUgYWx3YXlzIGZyZWUgdmFyaWFibGVzLiBBIHNlbnRlbmNlIGluIE5PSS1jbGF1 c2Ugb3IgTlUtY2xhdXNlIHdpdGgge2NlJ3V9IGlzIG9wZW4uIChBIHNlbnRlbmNlIGluIE5VLWNs YXNlIHdpdGggbm8ge2NlJ3V9IGhhcyBhIHRydXRoIHZhbHVlLCBidXQgZWFjaCBvZiB0aGUgaW5z aWRlIGFuZCB0aGUgb3V0c2lkZSBvZiBOVS1jbGF1c2UgaGFzIGFuIGluZGVwZW5kZW50IHVuaXZl cnNlIG9mIGRpc2NvdXJzZSwgYW5kIHRodXMgZWFjaCBvZiB0aGVtIGhhcyBhbiBpbmRlcGVuZGVu dCB0cnV0aCB2YWx1ZSAoZm9yIGV4YW1wbGUsIHNlZSBbaHR0cDovL2RhZy5naXRodWIuaW8vY2xs LzkvNy98Q0xMOS43XSkuIEluIGRlZmluaXRpb25zIG9mIHdvcmRzIGluIExvamJhbiwga28nVi9m bydWIHNlcmllcyB7a28nYSwga28nZSwgLi4ufSBvZiBzZWxtYSdvIEtPaEE0IGFyZSB1c2VkIGFz IGZyZWUgdmFyaWFibGVzLCBidXQgaXQgaXMgb25seSBhIGN1c3RvbSBmb3IgY29udmVuaWVuY2Uu IEFsbCBjbWF2byBvZiBLT2hBMiwzLDQsNSw2IGFuZCB7em8nZX0gb2YgS09oQTcgYXJlIGVzc2Vu dGlhbGx5IGNvbnN0YW50cy4gQ29uc2lkZXJpbmcgdGhlIGNhc2UgdGhhdCBib3RoIGNvbnN0YW50 cyBhbmQgYm91bmQgdmFyaWFibGVzICh0byBiZSBkZWZpbmVkIGJlbGxvdykgYXBwZWFyIGluIGEg c3RhdGVtZW50LCAiY29uc3RhbnRzIiBhcmUgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgdG8gYmUgU2tv bGVtIGZ1bmN0aW9ucy4gU2VlICgofCNCb3VuZF92YXJpYWJsZXNfYW5kX2NvbnN0YW50c19pbl9h X3N0YXRlbWVudHxTZWN0aW9uIDMuMi4yKSkgZm9yIGRldGFpbC5eCgo7X19xdWFudGlmeV9fOiBJ biBzdWJzdGl0dXRpbmcgcG9zc2libGUgYXJndW1lbnRzIG9uZSBieSBvbmUgZm9yIGEgdmFyaWFi bGUgaW4gYSBzZW50ZW5jZSwgY291bnQgdGhlIG51bWJlciBvZiByZWZlcmVudHMgdGhhdCBtYWtl IHRoZSBzZW50ZW5jZSB0cnVlLCBhbmQgcHJlZml4IHRoZSBudW1iZXIgdG8gdGhlIHZhcmlhYmxl LgoKO19fcXVhbnRpZmllcl9fOiBOdW1iZXIgdXNlZCBmb3IgcXVhbnRpZmljYXRpb24uIEJlc2lk ZXMge3BhfSwge3JlfSwge3ZlaSBueSBzdSdpIHBhICh2ZSdvKX0gYW5kIHNvIG9uLCB7cm99ICJh bGwiIGFuZCB7c3Unb30gInRoZXJlIGlzIG9uZSBvciBtb3JlIiBhcmUgYWxzbyBxdWFudGlmaWVy cy4KCjtfX2JvdW5kIHZhcmlhYmxlX186IFZhcmlhYmxlIHByZWZpeGVkIGJ5IGEgcXVhbnRpZmll ci4gQXMgYSByZXN1bHQgb2YgcXVhbnRpZmljYXRpb24sIHRoZXJlIGlzIG5vIHJvb20gZm9yIHN1 YnN0aXR1dGluZyBhbiBhcmJpdHJhcnkgYXJndW1lbnQgZm9yIHRoZSB2YXJpYWJsZS4KCl5JbiBM b2piYW4sIHtkYX0sIHtkZX0gYW5kIHtkaX0gYXJlIGJvdW5kIHZhcmlhYmxlcy4gRm9yIGV4YW1w bGUsIHtybyBkYSB6byd1IGRhIGJyb2RhfSBtZWFucyAiRm9yIGFsbCB7ZGF9IGluIHRoZSB1bml2 ZXJzZSBvZiBkaXNjb3Vyc2UsIHtkYSBicm9kYX0gaXMgdHJ1ZS4iIEluIHRoZSBjYXNlIHRoYXQg e2RhfSwge2RlfSBvciB7ZGl9IGFyZSBub3QgcHJlZml4ZWQgYnkgYSBxdWFudGlmaWVyLCB0aGV5 IGFyZSByZWdhcmRlZCBhcyBpbXBsaWNpdGx5IHByZWZpeGVkIGJ5IHtzdSdvfS5eCgo7X19kb21h aW5fXzogUmFuZ2Ugb2YgcmVmZXJlbnRzIHRvIGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlhYmxl LCBvciByYW5nZSB0byBiZSBjb25zaWRlcmVkIGluIGNvdW50aW5nIHJlZmVyZW50cyBpbiBxdWFu dGlmaWNhdGlvbi4KCl5JbiBMb2piYW4sIGEgZG9tYWluIG9mIGEgYm91bmQgdmFyaWFibGUgY2Fu IGJlIGxpbWl0ZWQgd2l0aCBhbiBleHByZXNzaW9uIHtkYSBwb2kuLi59LiBGb3IgZXhhbXBsZSwg e3JvIGRhIHBvaSBrZSdhIGJyb2RhIHpvJ3UgZGEgYnJvZGV9IG1lYW5zICJGb3IgYWxsIHtkYX0g dGhhdCBhcmUgeDEgb2Yge2Jyb2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCB7ZGEg YnJvZGV9IGlzIHRydWUuIiBJZiB7cG9pLi4ufSBkb2VzIG5vdCBmb2xsb3cge2RhfSwgdGhlIGRv bWFpbiBpcyB0aGUgd2hvbGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLl4KCjtfX3RhdXRvbG9neV9f OiBTZW50ZW5jZSB0aGF0IGlzIGFsd2F5cyB0cnVlIGluZGVwZW5kZW50bHkgb2YgY29udGV4dC4g e2tvJ2EgZHUga28nYX0gZXRjLgoKO19fbG9naWNhbCBheGlvbXNfXzogU2VudGVuY2VzIHNlbGVj dGVkIGZyb20gdGF1dG9sb2dpZXMgc28gdGhhdCBhbGwgdGF1dG9sb2dpZXMgYXJlIHByb3ZlZCBm cm9tIHRoZW0gd2l0aCBydWxlcyBvZiBpbmZlcmVuY2UgdGhhdCBhcmUgZGVmaW5lZC4KCgoKISEj IFBsdXJhbCBxdWFudGlmaWNhdGlvbgoKSW4gb3JkZXIgdG8gdW5kZXJzdGFuZCBhcmd1bWVudHMg b2YgTG9qYmFuIGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZpZXcsIGl0IGlzIGVzc2VudGlhbCB0 byBoYXZlIGEga25vd2xlZGdlIG9mIF9fcGx1cmFsIHF1YW50aWZpY2F0aW9uX18uCgoKClBsdXJh bCBxdWFudGlmaWNhdGlvbiB3YXMgaW52ZW50ZWQgaW4gb3JkZXIgdG8gZmFjaWxpdGF0ZSBleHBy ZXNzaW9uIG9mIHByb3Bvc2l0aW9uIHRoYXQgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gdGhlIHJl ZmVyZW50IG9mIGFuIGFyZ3VtZW50IGlzIHBsdXJhbC4gCgpeCgo7RXhhbXBsZTogUGVvcGxlIGdh dGhlcmVkLCBjb29rZWQgYW5kIGF0ZS5eCgpMb2dpY2FsbHksIHRoaXMgc2VudGVuY2UgaXMgYSBw cm9wb3NpdGlvbiB0aGF0IGNvbnNpc3RzIG9mIGEgY29uc3RhbnQgInBlb3BsZSIgYW5kIHRocmVl IHByZWRpY2F0ZXMgImdhdGhlcmVkIiAiY29va2VkIiBhbmQgImF0ZSIuIFRoZSBwcmVkaWNhdGVz IGFyZSBkaWZmZXJlbnQgZnJvbSBlYWNoIG90aGVyIGluIHByb3BlcnR5IG9mIHRyZWF0aW5nIHRo ZSBhcmd1bWVudC4gV2Ugd2lsbCBkaXNjdXNzIHByZWNpc2VseSBob3cgdGhlIGFyZ3VtZW50IGlu IHRoZSBzZW50ZW5jZSBpcyB0cmVhdGVkLgoKCgohISEjIENvbGxlY3Rpdml0eSBhbmQgZGlzdHJp YnV0aXZpdHkKCgoKQ29uc2lkZXIgdGhlIGV4cHJlc3Npb24gInBlb3BsZSBnYXRoZXJlZCI6IGJh c2VkIG9uIHRoZSBtZWFuaW5nIG9mIHRoZSBwcmVkaWNhdGUgImdhdGhlcmVkIiwgdGhlIGNvbnN0 YW50ICJwZW9wbGUiIHNob3VsZCByZWZlciB0byBwbHVyYWwgcGVvcGxlLgoKV2hlbiByZWZlcmVu dHMgb2YgYW4gYXJndW1lbnQgc2F0aXNmeSBhIHByZWRpY2F0ZSBhcyBjb2xsZWN0aXZlIHBsdXJh bCB0aGluZ3MgbGlrZSB0aGlzLCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2Zp ZXMgYW4gcHJlZGljYXRlIF9fY29sbGVjdGl2ZWx5X18iLCBvciAidGhlIGFyZ3VtZW50IGhhcyBf X2NvbGxlY3Rpdml0eV9fIi4KCgoKQXMgZm9yIGVhY2ggb2YgdGhlIHBsdXJhbCBwZW9wbGUgcmVm ZXJyZWQgdG8gYnkgdGhlIGNvbnN0YW50LCAgZWFjaCBzZW50ZW5jZSBzdWNoIHRoYXQgIkFsaWNl IGdhdGhlcmVkIiwgIkJvYiBnYXRoZXJlZCIgYW5kIHNvIG9uIGlzIG5vbnNlbnNlLgoKV2hlbiBl YWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgY2Fubm90IHNhdGlzZnkgYSBw cmVkaWNhdGUgYWxvbmUsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBh biBwcmVkaWNhdGUgX19ub24tZGlzdHJpYnV0aXZlbHlfXyIuCgoKCk9uIHRoZSBvdGhlciBoYW5k LCBpbiB0aGUgZXhwcmVzc2lvbiAicGVvcGxlIGF0ZSIsIGFsdGhvdWdoIHRoZSBjb25zdGFudCAi cGVvcGxlIiByZWZlcnMgdG8gcGx1cmFsIHBlb3BsZSwgdGhlIHByZWRpY2F0ZSAiYXRlIiBpcyBz YXRpc2ZpZWQgYnkgZWFjaCBwZXJzb24uIFRoYXQgaXMgdG8gc2F5LCBlYWNoIHNlbnRlbmNlIHN1 Y2ggdGhhdCAiQWxpY2UgYXRlIiwgIkJvYiBhdGUiIGFuZCBzbyBvbiBpcyBtZWFuaW5nZnVsLgoK V2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgc2F0aXNmaWVzIGEg cHJlZGljYXRlIGFsb25lLCB3ZSBleHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMg YW4gcHJlZGljYXRlIF9fZGlzdHJpYnV0aXZlbHlfXyIsIG9yICJ0aGUgYXJndW1lbnQgaGFzIF9f ZGlzdHJpYnV0aXZpdHlfXyIuCgoKCk1vcmVvdmVyLCBpZiB0aGUgcHJlZGljYXRlICJlYXQiIG1l YW5zIGFuIGFjdCAicHV0IGZvb2QgaW4gYSBtb3V0aCwgYml0ZSBpdCwgbGV0IGl0IHBhc3MgdGhy b3VnaCBhbiBlc29waGFndXMgYW5kIHNlbmQgaXQgdG8gYSBzdG9tYWNoIiwgaXQgaXMgaGFyZGx5 IGNvbnNpZGVyZWQgdGhhdCAicGVvcGxlIiBzYXRpc2ZpZXMgImVhdCIgY29sbGVjdGl2ZWx5LiBF dmVuIGlmIGEgcGVyc29uIGhlbHBzIGFub3RoZXIgdG8gZWF0LCB0aGUgaGVscGVyIGlzIG5vdCBl YXRlciwgYW5kIHRoZSBlYXRlciBpcyBub3QgY29sbGVjdGl2ZSBwZW9wbGUgYnV0IGFuIGluZGl2 aWR1YWwuIAoKV2hlbiBlYWNoIHJlZmVyZW50IHJlZmVycmVkIHRvIGJ5IGEgY29uc3RhbnQgY2Fu bm90IHNhdGlzZnkgYSBwcmVkaWNhdGUgYXMgY29sbGVjdGl2ZSBwbHVyYWwgdGhpbmdzLCB3ZSBl eHByZXNzIGl0IGFzICJhbiBhcmd1bWVudCBzYXRpc2ZpZXMgYW4gcHJlZGljYXRlIF9fbm9uLWNv bGxlY3RpdmVseV9fIi4KCihIb3dldmVyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhl IHByZWRpY2F0ZSAiZWF0IiBhcyBpbnZvbHZpbmcgY29sbGVjdGl2aXR5LiBGb3IgZXhhbXBsZSwg aWYgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgInB1dCBmb29kIGF3YXkgZnJvbSBvdXRzaWRlIHRvIGlu c2lkZSBvZiBib2R5Iiwgd2UgbWF5IHNheSAiY29sbGVjdGl2ZWx5IGVhdCIgdG8gZXhwcmVzcyBh biBldmVudCB0aGF0IHBlb3BsZSBlYXQgYW5kIGNvbnN1bWUgYSBtYXNzIG9mIGZvb2QgdG9nZXRo ZXIuKQoKCgpUaGVyZSBhcmUgYWxzbyBwcmVkaWNhdGVzIHRoYXQgYWxsb3cgYm90aCBwcm9wZXJ0 aWVzICJjb2xsZWN0aXZpdHkiIGFuZCAiZGlzdHJpYnV0aXZpdHkiLgoKIlBlb3BsZSBjb29rZWQi IG1heSBtZWFuIHRoYXQgcGx1cmFsIHBlb3BsZSBrbmVhZCBwYXN0ZSBvZiBwaXp6YSB0b2dldGhl ciwgYW5kIHRoYXQgZWFjaCBvZiB0aGVtIGlzIGluIGNoYXJnZSBvZiBjYWtlcyBvciBwb3QtYXUt ZmV1LiBJbiB0aGlzIGNhc2UsIHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMgdG8gcGx1cmFs IHBlb3BsZSwgYW5kIHRoZXkgY29va2VkIHBpenphIGNvbGxlY3RpdmVseSwgY2FrZXMgYW5kIHBv dC1hdS1mZXUgZGlzdHJpYnV0aXZlbHkuIFRoZSBjb25zdGFudCAicGVvcGxlIiB0aHVzIHNhdGlz ZmllcyB0aGUgcHJlZGljYXRlICJjb29rZWQiIGNvbGxlY3RpdmVseSBhbmQgZGlzdHJpYnV0aXZl bHkuCgoKCk5vdGUgdGhhdCB0aGUgY29uc3RhbnQgInBlb3BsZSIgcmVmZXJzIHRvIHdoYXQgaXMg Y29tbW9uIHRvIHRocmVlIHByZWRpY2F0ZXMgImdhdGhlcmVkIiwgImNvb2tlZCIgYW5kICJhdGUi LiBObyBtYXR0ZXIgaWYgYSBjb25zdGFudCBzYXRpc2ZpZXMgcHJlZGljYXRlcyBjb2xsZWN0aXZl bHkgb3IgZGlzdHJpYnV0aXZlbHksIHRoZSByZWZlcmVudCBpcyB0aGUgc2FtZS4KCgoKSWYgd2Ug dXNlIGFuIGFyZ3VtZW50ICJhIHNldCBvZiBwZW9wbGUiIGluIHRoZSBjYXNlIG9mIHNhdGlzZnlp bmcgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5LCBpdCBtaWdodCBiZSBwb3NzaWJsZSB0byBpbnRl cnByZXQgdGhlIHByZWRpY2F0ZSAiZ2F0aGVyZWQiIHNvIHRoYXQgdGhlIGFyZ3VtZW50IHNhdGlz ZmllcyBpdCwgYnV0IHRoZSBzYW1lIGFyZ3VtZW50IGNhbm5vdCBzYXRpc2Z5IHRoZSBwcmVkaWNh dGUgImF0ZSIsIGJlY2F1c2Ugd2UgY2FuIGhhcmRseSBzYXkgdGhhdCBhIHNldCBvZiBwZW9wbGUs IHdoaWNoIGlzIGFuIGFic3RyYWN0IGVudGl0eSwgcGVyZm9ybXMgImF0ZSIuCgoKClVzaW5nIHBs dXJhbCBjb25zdGFudHMgYW5kIHBsdXJhbCB2YXJpYWJsZXMgdGhhdCB3aWxsIGJlIGRpc2N1c3Nl ZCBpbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zLCB3ZSBjYW4gZXhwcmVzcyBwbHVyYWwgdGhpbmdz IGluIHRoZSBmb3JtIG9mIHByZWRpY2F0ZSBsb2dpYyB3aXRob3V0IHVzaW5nIHNldHMuCgoKCiEh ISMgUGx1cmFsIGNvbnN0YW50IGFuZCBwbHVyYWwgdmFyaWFibGUKCkFuIGFyZ3VtZW50IHRoYXQg cmVmZXJzIHRvIHJlZmVyZW50IHdpdGhvdXQgaW50cm9kdWNpbmcgYSBub3Rpb24gb2Ygc2V0cywg d2l0aG91dCBkaXN0aW5ndWlzaGluZyBjb2xsZWN0aXZpdHkgYW5kIGRpc3RyaWJ1dGl2aXR5LCB3 aXRob3V0IGRpc3Rpbmd1aXNoaW5nIHBsdXJhbGl0eSBhbmQgc2luZ3VsYXJpdHksIGlzIGNhbGxl ZCBfX3BsdXJhbCBjb25zdGFudF9fLgoKQSB2YXJpYWJsZSBmb3Igd2hpY2ggYSBwbHVyYWwgY29u c3RhbnQgY2FuIGJlIHN1YnN0aXR1dGVkIGlzIGNhbGxlZCBfX3BsdXJhbCB2YXJpYWJsZV9fLgoK UXVhbnRpZnlpbmcgYSBwbHVyYWwgdmFyaWFibGUgaXMgY2FsbGVkIF9fcGx1cmFsIHF1YW50aWZp Y2F0aW9uX18uIEEgcXVhbnRpZmllciB1c2VkIGZvciBwbHVyYWwgcXVhbnRpZmljYXRpb24gaXMg Y2FsbGVkIF9fcGx1cmFsIHF1YW50aWZpZXJfXy4gQSBwbHVyYWwgdmFyaWFibGUgcHJlZml4ZWQg d2l0aCBhIHBsdXJhbCBxdWFudGlmaWVyIGlzIGNhbGxlZCBhIF9fYm91bmQgcGx1cmFsIHZhcmlh YmxlX18uCgoKCiEhISEjIG1lIGFuZCBqbyd1CgpXZSBpbnRyb2R1Y2UgcmVsYXRpb25zIGJldHdl ZW4gcGx1cmFsIGNvbnN0YW50cyBhbmQgcGx1cmFsIHZhcmlhYmxlczoge21lfSBhbmQge2pvJ3V9 LgoKCgp8fAoKWCBtZSBZIChtZSd1KSB+aHN+fH5oc34gWCBpcyBhbW9uZyBZCgp8fAoKWCBhbmQg WSByZXByZXNlbnQgaGVyZSBwbHVyYWwgY29uc3RhbnRzIG9yIHBsdXJhbCB2YXJpYWJsZXMuIEEg Y2x1c3RlciB7bWUgWSAobWUndSl9IGlzIGEgc2VsYnJpIGluIExvamJhbiBncmFtbWFyLiB7bWUn dX0gaXMgYW4gZWxpZGFibGUgdGVybWluYXRvciBvZiBzdHJ1Y3R1cmUgYmVnaW5uaW5nIHdpdGgg e21lfS4KCgoKe21lfSBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRyYXJ5 IGFyZ3VtZW50cyBYLCBZIGFuZCBaOgoKIyBYIG1lIFggKHJlZmxleGl2aXR5KQoKIyBYIG1lIFkg aWplYm8gWSBtZSBaIGluYWphIFggbWUgWiAodHJhbnNpdGl2aXR5KQoKIyBYIG1lIFkgaWplYm8g WSBtZSBYIGlqbyBYIGR1IFkgKGlkZW50aXR5KQoKVGhlIHByb3BlcnR5IDMgbWVhbnMgdGhhdCB0 aGUgaWRlbnRpdHkgYmV0d2VlbiByZWZlcmVudHMgb2YgWCBhbmQgWSBpcyByZXByZXNlbnRlZCB3 aXRoIHttZX0sIGFzIGEgcmVsYXRpb24gdGhhdCB7WCBtZSBZIGlqZWJvIFkgbWUgWH0uCgoKCnx8 CgpYIGpvJ3UgWSB+aHN+fH5oc34gWCBhbmQgWQoKfHwKCntqbyd1fSBjb21iaW5lcyB0d28gYXJn dW1lbnRzIFggYW5kIFkgaW50byBvbmUgcGx1cmFsIGNvbnN0YW50IG9yIG9uZSBwbHVyYWwgdmFy aWFibGUuCgoKCntqbyd1fSBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHdpdGggYXJiaXRy YXJ5IGFyZ3VtZW50cyBYIGFuZCBZOgoKIyBYIG1lIFggam8ndSBZCgojIFggam8ndSBZIGR1IFkg am8ndSBYCgojIFggam8ndSBYIGR1IFgKClRoZSBwcm9wZXJ0eSAyIG1lYW5zIHRoYXQgdGhlIHJl ZmVyZW50IG9mIHRoZSB3aG9sZSBhcmd1bWVudCBkb2VzIG5vdCB2YXJ5IHdoZW4gdHdvIGFyZ3Vt ZW50cyBjb21iaW5lZCBieSB7am8ndX0gYXJlIGludGVyY2hhbmdlZCB3aXRoIGVhY2ggb3RoZXIu IFRoZSBwcm9wZXJ0eSAzIG1lYW5zIHRoYXQge2pvJ3V9IGRvZXMgbm90IGFkZCBhbnkgcmVmZXJl bnQgd2hlbiBpdCBjb21iaW5lcyBhbiBhcmd1bWVudCB3aXRoIGl0c2VsZi4KCgoKVXNpbmcge2pv J3V9LCB0aGUgZm9sbG93aW5nIGV4cHJlc3Npb24gaXMgcG9zc2libGU6CgpeCgo7RXhhbXBsZTog QiBhbmQgQyBnYXRoZXJlZCwgY29va2VkIGFuZCBhdGUuCgo7OiBieSBqbyd1IGN5IGptYWppIGdp J2UganVrcGEgZ2knZSBjaXRrYV4KCkVhY2ggb2Yge2J5fSBhbmQge2N5fSBpcyBhIHBsdXJhbCBj b25zdGFudC4KCgoKVGhlIHByZWRpY2F0ZSB7anVrcGF9IChjb29rKSBjYW4gYmUgaW50ZXJwcmV0 ZWQgY29sbGVjdGl2ZWx5IGFuZC9vciBkaXN0cmlidXRpdmVseSwgYnV0IHRoZSBwbHVyYWwgY29u c3RhbnQge2J5IGpvJ3UgY3l9IHNheXMgbm90aGluZyBhYm91dCB3aGV0aGVyIGl0IHNhdGlzZmll cyB7anVrcGF9IGNvbGxlY3RpdmVseSBhbmQvb3IgZGlzdHJpYnV0aXZlbHkuIElmIHdlIHdhbnQg dG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZXkgY29va2VkICJjb2xsZWN0aXZlbHkiLCB3ZSBzYXkg e2J5IGpvaSBjeX0gdXNpbmcge2pvaX0gdGhhdCB3aWxsIGJlIGRpc2N1c3NlZCBpbiAoKHwjUmVs YXRpb25fYmV0d2Vlbl9qb191X2pvaV9jZV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjQpKSwgb3Ige2x1 J28gYnkgam8ndSBjeX0gdXNpbmcge2x1J299IHRoYXQgd2lsbCBiZSBkaXNjdXNzZWQgaW4gKCh8 I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9sdV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSku IENvbnRyYXN0aXZlbHksIGlmIHdlIHdhbnQgdG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZXkgY29v a2VkICJkaXN0cmlidXRpdmVseSIsIHdlIHNheSAge2x1J2EgYnkgam8ndSBjeX0gdXNpbmcge2x1 J2F9IHRoYXQgd2lsbCBiZSBkaXNjdXNzZWQgaW4gKCh8I1JlbGF0aW9uX2JldHdlZW5fbHVfYV9s dV9vX2x1X2lfYW5kX2dhZHJpfFNlY3Rpb24gMy4zKSkuIEhvd2V2ZXIsIHRoZXNlIGFyZ3VtZW50 cyB0aGF0IHNheXMgZXhwbGljaXRseSBjb2xsZWN0aXZpdHkgYW5kL29yIGRpc3RyaWJ1dGl2aXR5 IGFyZSBub3QgYWx3YXlzIGNvbW1vbmx5IHVzZWQgZm9yIG90aGVyIHByZWRpY2F0ZXMgbGlrZSB7 am1haml9IG9yIHtjaXRrYX0uCgoKClRoZSBkaWFncmFtIGJlbGxvdyBzaG93cyByZWxhdGlvbnMg Y29uc3RydWN0ZWQgd2l0aCB7bWV9IGFuZCB7am8ndX0gcmVwcmVzZW50ZWQgd2l0aCBhIGRpcmVj dGVkIGdyYXBoLCBpbiB3aGljaCB0aGUgdmVydGljZXMgcmVwcmVzZW50IHBsdXJhbCBjb25zdGFu dHMuCgoKCntpbWcgZmlsZUlkPSI3IiB0aHVtYj0ieSIgcmVsPSJib3hbZ10ifQoKCgohISEhIyBJ bmRpdmlkdWFsCgpSZWZlcmVudCBvZiBhIHBsdXJhbCBjb25zdGFudCBpcyBub3QgbmVjZXNzYXJp bHkgcGx1cmFsOiBhIHBsdXJhbCBjb25zdGFudCBjYW4gcmVmZXIgdG8gb25lIGluZGl2aWR1YWwu CgpfX0FuIGluZGl2aWR1YWxfXyBpcyBkZWZpbmVkIGFzIGZvbGxvd3M6Cgp8fAoKX19YIGlzIGFu IGluZGl2aWR1YWxfXyB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHJvJ29pIGRhIHBvaSBrZSdh IG1lIFggem8ndSBYIG1lIGRhCgp8fAoKCgp3aGVyZSBfX3JvJ29pX18gaXMgYW4gZXhwZXJpbWVu dGFsIGNtYXZvIHByb3Bvc2VkIGJ5ICgoeG9yeGVzfGxhIHhvcnhlcykpLCB3aGljaCBpcyBhIHBs dXJhbCBxdWFudGlmaWVyIG1lYW5pbmcgImFsbCIuICB7cm8nb2kgZGF9IGlzIGEgYm91bmQgcGx1 cmFsIHZhcmlhYmxlIG1lYW5pbmcgImZvciBhbGwgdGhhdCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9y IHtkYX0iLiBUaGlzIGRlZmluaXRpb24gbWVhbnMgdGhhdCBYIGlzIGNhbGxlZCBhbiBpbmRpdmlk dWFsIHdoZW4gdGhlIGNvbmRpdGlvbiAiZm9yIGFsbCB7ZGF9IHRoYXQgYXJlIGFtb25nIFgsIFgg aXMgYW1vbmcge2RhfSIgaXMgc2F0aXNmaWVkLiBJbiBvdGhlciB3b3JkcywgImluIHRoZSB1bml2 ZXJzZSBvZiBkaXNjb3Vyc2UsIG5vdGhpbmcgb3RoZXIgdGhhbiB7WH0gY2FuIGJlIHN1YnN0aXR1 dGVkIGZvciB7ZGF9IHN1Y2ggdGhhdCB7WCBtZSBkYX0iIGlzIGV4cHJlc3NlZCBieSAiWCBpcyBh biBpbmRpdmlkdWFsIi4KCgoKV2hlbiBlYWNoIG9mIFggYW5kIFkgaXMgYW4gaW5kaXZpZHVhbCBh bmQgWCBpcyBub3QgZXF1YWwgdG8gWSwge1ggam8ndSBZfSBpcyBjYWxsZWQgX19pbmRpdmlkdWFs c19fLiBXaGVuIGVhY2ggb2YgWCBhbmQgWSBpcyBhbiBpbmRpdmlkdWFsIG9yIGluZGl2aWR1YWxz LCB7WCBqbyd1IFl9IGlzIGNhbGxlZCBpbmRpdmlkdWFscyBhcyB3ZWxsLgoKCgohISEhIyBEaWZm ZXJlbmNlIGJldHdlZW4gcGx1cmFsIGFuZCBzaW5ndWxhcgoKQSBwbHVyYWwgY29uc3RhbnQgdGhh dCByZWZlcnMgdG8gYSBzaW5nbGUgaW5kaXZpZHVhbCBpcyBjYWxsZWQgYSBfX3Npbmd1bGFyIGNv bnN0YW50X18uCgoKClVubGVzcyBYPVkgYW5kIFggaXMgYW4gaW5kaXZpZHVhbCwgbm8gbWF0dGVy IHdoZXRoZXIgZWFjaCBvZiBYIGFuZCBZIGlzIHBsdXJhbCBvciBzaW5ndWxhciwge1ggam8ndSBZ fSBpcyBub3QgYSBzaW5ndWxhciBjb25zdGFudC4gSXQgaXMgYmVjYXVzZSAKCl5YIG1lIFggam8n dSBZIGlqZW5haSBYIGpvJ3UgWSBtZSBYXgoKaG9sZHMgdHJ1ZSwgYW5kIHRoZW4ge1ggam8ndSBZ fSBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjb25kaXRpb24gb2YgYW4gaW5kaXZpZHVhbCB7cm8nb2kg ZGEgcG9pIGtlJ2EgbWUgWCBqbyd1IFkgem8ndSBYIGpvJ3UgWSBtZSBkYX0uCgoKCiEhISEjIEJv dW5kIHNpbmd1bGFyIHZhcmlhYmxlCgpXaGVuIHRoZSBkb21haW4gb2YgYSBib3VuZCBwbHVyYWwg dmFyaWFibGUgaXMgcmVzdHJpY3RlZCB0byB3aGF0IGlzIGFuIGluZGl2aWR1YWwsIHRoZSB2YXJp YWJsZSBpcyBjYWxsZWQgX19ib3VuZCBzaW5ndWxhciB2YXJpYWJsZV9fLiBBIGJvdW5kIHNpbmd1 bGFyIHZhcmlhYmxlIGNhbm5vdCB0YWtlIG1vcmUgdGhhbiBvbmUgaW5kaXZpZHVhbCB2YWx1ZSBh dCBhIHRpbWUuCgp7cm8gZGF9IChmb3IgYWxsIHtkYX0pIGFuZCB7c3UnbyBkYX0gKHRoZXJlIGlz IGF0IGxlYXN0IG9uZSB7ZGF9KSwgd2hpY2ggYXJlIG9mZmljaWFsbHkgZGVmaW5lZCBpbiBMb2pi YW4sIGFyZSBib3VuZCBzaW5ndWxhciB2YXJpYWJsZXMuIFRoZXkgY2FuIGJlIGRlZmluZWQgd2l0 aCBib3VuZCBwbHVyYWwgdmFyaWFibGVzIGFzIGZvbGxvd3M6Cgp8fAoKcm8gZGEgfmhzfnx+aHN+ IHJvJ29pIGRhIHBvaSBybydvaSBkZSBwb2kgZGUgbWUgZGEgem8ndSBkYSBtZSBkZQoKc3UnbyBk YSB+aHN+fH5oc34gc3Unb2kgZGEgcG9pIHJvJ29pIGRlIHBvaSBkZSBtZSBkYSB6byd1IGRhIG1l IGRlCgp8fAoKX19zdSdvaV9fIGlzIGFuIGV4cGVyaW1lbnRhbCBjbWF2byBwcm9wb3NlZCBieSAo KHhvcnhlc3xsYSB4b3J4ZXMpKSwgYW5kIGlzIGEgcGx1cmFsIHF1YW50aWZpZXIgbWVhbmluZyAi dGhlcmUgaXMvYXJlIi4gTm90ZSB0aGF0IHtzdSdvaX0gaXMgX19ub3RfXyAiYXQgbGVhc3Qgb25l Ii4ge3N1J29pIGRhfSBpcyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBtZWFuaW5nICJ0aGVyZSBp cy9hcmUge2RhfSIuCgoKCiEhISEjIFdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBp bmRpdmlkdWFscwoKUmVmZXJlbnQgb2YgYSBwbHVyYWwgY29uc3RhbnQgaXMgbm90IG5lY2Vzc2Fy aWx5IGFuIGluZGl2aWR1YWwgb3IgaW5kaXZpZHVhbHMuIAoKSXQgaXMgcG9zc2libGUgdG8gZGlz Y3VzcyBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBzdWNoIHRoYXQgcmVmZXJlbnQgb2YgYSBwbHVy YWwgY29uc3RhbnQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscy4KCgoK Rm9yIGV4YW1wbGUsIGNvbnNpZGVyIHN1Y2ggYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgaW4gd2hp Y2ggdGhlIGZvbGxvd2luZyBwcm9wb3NpdGlvbiBob2xkcyB0cnVlLgoKXnJvJ29pIGRhIHBvaSBr ZSdhIG1lIGtvJ2Ega3UnbyBzdSdvaSBkZSB6byd1IGRlIG1lIGRhIGlqZW5haSBkYSBtZSBkZSB+ LS1+IENvbmRpdGlvbl8xXgoKSW4gb3RoZXIgd29yZHMsIGluIHRoaXMgdW5pdmVyc2Ugb2YgZGlz Y291cnNlLCBmb3IgYWxsIFggc3VjaCB0aGF0IHtYIG1lIGtvJ2F9LCB0aGVyZSBpcyBhbHdheXMg WSBzdWNoIHRoYXQge1kgbWUgWH0gYW5kIG5vdCB7WCBtZSBZfS4KCgoKO1RoZW9yZW06IEluIGEg dW5pdmVyc2Ugb2YgZGlzY291cnNlIHdoZXJlIENvbmRpdGlvbl8xIGlzIHRydWUsIHtrbydhfSBp cyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgo7UHJvb2Y6IFN1cHBv c2Uge2tvJ2F9IGlzIGFuIGluZGl2aWR1YWwuIEZyb20gdGhlIGRlZmluaXRpb24gb2YgImFuIGlu ZGl2aWR1YWwiOgoKXnJvJ29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Egem8ndSBrbydhIG1lIGRhIH4t LX4gU3VwcG9zaXRpb25fMl4KClJlcGxhY2Uge3JvJ29pIGRhfSB3aXRoIHtuYWt1IHN1J29pIGRh IG5ha3V9OgoKXm5ha3Ugc3Unb2kgZGEgcG9pIGtlJ2EgbWUga28nYSBrdSdvIG5ha3Ugem8ndSBr bydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0xXgoKTW92ZSB0aGUgaW5uZXItbW9zdCB7bmFr dX0gaW50byB0aGUgcHJvcG9zaXRpb246CgpebmFrdSBzdSdvaSBkYSBwb2kga2UnYSBtZSBrbydh IHpvJ3UgbmFrdSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0yXgoKUmVwbGFjZSB7c3Un b2kgZGEgcG9pfSB3aXRoIHtpamV9IGFuZCBtb3ZlIGludG8gdGhlIHByb3Bvc2l0aW9uOgoKXm5h a3Ugc3Unb2kgZGEgem8ndSBkYSBtZSBrbydhIGlqZSBuYWt1IGtvJ2EgbWUgZGEgfi0tfiBTdXBw b3NpdGlvbl8yLTNeCgpSZXBsYWNlIHtpamUgbmFrdX0gd2l0aCB7aWplbmFpfToKCl5uYWt1IHN1 J29pIGRhIHpvJ3UgZGEgbWUga28nYSBpamVuYWkga28nYSBtZSBkYSB+LS1+IFN1cHBvc2l0aW9u XzItNF4KCkJ5IHRoZSB3YXksIGZyb20gYSBwcm9wZXJ0eSBvZiB7bWV9LAoKXmtvJ2EgbWUga28n YSBeCgppcyBhbHdheXMgdHJ1ZS4ge2tvJ2F9IGlzIHRoZXJlZm9yZSBpbiB0aGUgZG9tYWluIG9m IHtkYX0gb2YgQ29uZGl0aW9uXzEuIFJlcGxhY2Uge3JvJ29pIGRhfSBvZiBDb25kaXRpb25fMSB3 aXRoIHtrbydhfSwgYW5kIGl0IHRodXMgaG9sZHMgdHJ1ZToKCl5zdSdvaSBkZSB6byd1IGRlIG1l IGtvJ2EgaWplbmFpIGtvJ2EgbWUgZGUgfi0tfiBDb25kaXRpb25fMS0xXgoKQ29uZGl0aW9uXzEt MSBhbmQgU3VwcG9zaXRpb25fMi00IGNvbnRyYWRpY3QgZWFjaCBvdGhlci4KClN1cHBvc2l0aW9u XzIgaXMgdGh1cyByZWplY3RlZCBieSByZWR1Y3RpbyBhZCBhYnN1cmR1bS4KCkl0IG1lYW5zIHRo YXQge2tvJ2F9IGlzIG5vdCBhbiBpbmRpdmlkdWFsLgoKCgpNb3Jlb3Zlciwgd2hlbiB7a28nYX0g aXMgZXhwYW5kZWQgdG8ge0Egam8ndSBCfSwgZnJvbSBhIHByb3BlcnR5IG9mIHtqbyd1fSwgdGhl IGZvbGxvd2luZyBwcm9wb3NpdGlvbnMgaG9sZCB0cnVlOgoKXkEgbWUga28nYX5wcH4KCn4vcHB+ QiBtZSBrbydhXgoKRWFjaCBvZiBBIGFuZCBCIGlzIGluIHRoZSBkb21haW4gb2Yge2RhfSBvZiBD b25kaXRpb25fMS4gQ29uc2lkZXJpbmcgc2ltaWxhcmx5IHRvIENvbmRpdGlvbl8xLTEsIG5laXRo ZXIgQSBub3IgQiBpcyBhbiBpbmRpdmlkdWFsLiB7a28nYX0gaXMgdGh1cyBub3QgaW5kaXZpZHVh bHMuCgpRLkUuRC4KCgoKV2hlbiB7a28nYX0gaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBp bmRpdmlkdWFscywgd2hhdCBhY3R1YWxseSBkb2VzIGl0IHJlZmVyIHRvPwoKV2UgbWF5IGludGVy cHJldCB0aGF0IGl0IHJlZmVycyB0byB3aGF0IGlzIHJlZmVycmVkIHRvIGJ5IGEgbWF0ZXJpYWwg bm91biwgZm9yIGV4YW1wbGUuCgpCeSBhIHNwZWFrZXIgd2hvIHRoaW5rcyB0aGF0IGEgY3V0LW9m ZiBwaWVjZSBvZiBicmVhZCBpcyBhbHNvIGJyZWFkLCBicmVhZCBpcyByZWdhcmRlZCBhcyBuZWl0 aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpbaHR0cHM6Ly9ncm91cHMuZ29v Z2xlLmNvbS9kL21zZy9sb2piYW4vUkF0RTdZay1kcXcvcENHZVlDRTlsMVFKfChSZWxhdGVkIGRp c2N1c3Npb246IGZvciB0aGUgY2FzZSBvZiB7a28nYX09e2xvIHNpZGJvfSwgSSB3cm90ZSB0aGUg c2FtZSBwcm9vZiBvbmx5IGluIExvamJhbi4pXQoKCgohISEhIyBBIGxvZ2ljYWwgYXhpb20gb24g cGx1cmFsIGNvbnN0YW50CgpUaGUgZm9sbG93aW5nIGxvZ2ljYWwgYXhpb20gaXMgZ2l2ZW4gdG8g YW4gYXJiaXRyYXJ5IHBsdXJhbCBjb25zdGFudCBDOgoKXmdhbmFpIEMgYnJvZGEgZ2kgc3Unb2kg ZGEgem8ndSBkYSBicm9kYV4KCgoKSXQgbWVhbnMgImluIGEgdW5pdmVyc2Ugb2YgZGlzY291cnNl LCBpZiBhIHByb3Bvc2l0aW9uIGluIHdoaWNoIGEgcGx1cmFsIGNvbnN0YW50IGlzIHgxIG9mIHti cm9kYX0gaG9sZHMgdHJ1ZSwgdGhlcmUgaXMgcmVmZXJlbnQgdGhhdCBpcyB4MSBvZiB7YnJvZGF9 Ii4KCgoKVGhhdCBpcyB0byBzYXksIGFuIGFyZ3VtZW50IHRoYXQgaGFzIG5vIHJlZmVyZW50IGlu IGEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIGNhbm5vdCBiZSByZXByZXNlbnRlZCBieSBhIHBsdXJh bCBjb25zdGFudC4gQW4gYXJndW1lbnQgdGhhdCBoYXMgbm8gcmVmZXJlbnQgaXMgZXhwcmVzc2Vk IGluIHRoZSBmb3JtIHtuYWt1IHN1J29pIGRhfSwgd2hpY2ggaXMgYSBuZWdhdGlvbiBvZiBhIGJv dW5kIHBsdXJhbCB2YXJpYWJsZSB7c3Unb2kgZGF9IG1lYW5pbmcgInRoZXJlIGlzL2FyZSIuCgoK CiEhIyBEZWZpbml0aW9uIG9mIGdhZHJpCgo7X19sb19fIChMRSk6IEl0IGlzIHByZWZpeGVkIHRv IHNlbGJyaSwgYW5kIGZvcm1zIGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHdoYXQg c2F0aXNmaWVzIHgxLCB0aGUgZmlyc3QgcGxhY2Ugb2YgdGhlIHNlbGJyaS4gSWYgYSBxdWFudGlm aWVyIGZvbGxvd3Mge2xvfSwgdGhlIHF1YW50aWZpZXIgcmVwcmVzZW50cyB0aGUgY291bnQgb2Yg YWxsIHRoZSByZWZlcmVudHMgb2YgdGhlIHBsdXJhbCBjb25zdGFudC4gSW4gdGhlIGNhc2UgdGhh dCBhIHF1YW50aWZpZXIgZm9sbG93cyB7bG99LCBhIHN1bXRpIG1heSBmb2xsb3cgaXQuIEluIHRo aXMgY2FzZSwgaXQgZm9ybXMgYSBwbHVyYWwgY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gd2hhdCBp cy9hcmUgYW1vbmcgJydzdW10aScnLgoKfHwKCmxvIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+aHN+ IHpvJ2Ugbm9pIGtlJ2EgYnJvZGEgW1tnaSdlIHppbGthbmN1IGxpIFBBIGxvIGJyb2RhXSAoa3Un bykgfmhzfnx+aHN+IHdoYXQgaXMvYXJlIGJyb2RhIFtbdGhhdCBpcy9hcmUgUEEgaW4gdG90YWxd CgpsbyBQQSAnJ3N1bXRpJycgKGt1KSB+aHN+fH5oc34gbG8gUEEgbWUgJydzdW10aScnIChtZSd1 KSAoa3UpIH5oc358fmhzfiB3aGF0IGlzL2FyZSBhbW9uZyAnJ3N1bXRpJycsIGFuZCBQQSBpbiB0 b3RhbAoKfHwKCntrdX0sIHtrdSdvfSwge21lJ3V9IGFyZSBlbGlkYWJsZSB0ZXJtaW5hdG9ycy4K CgoKUHV0dGluZyBhIHF1YW50aWZpZXIgYWZ0ZXIgZ2FkcmkgbGlrZSB7bG8gUEF9IGlzIGNhbGxl ZCBfX2lubmVyIHF1YW50aWZpY2F0aW9uX18sIGFuZCB0aGUgcXVhbnRpZmllciBpcyBjYWxsZWQg X19pbm5lciBxdWFudGlmaWVyX18uIEFsdGhvdWdoIHRoZSB0ZXJtICJxdWFudGlmeSIgaXMgaW52 b2x2ZWQsIGl0IGlzIGRpZmZlcmVudCBmcm9tIHF1YW50aWZpY2F0aW9uIG9mIGxvZ2ljLiBJbm5l ciBxdWFudGlmaWNhdGlvbiBkb2VzIG5vdCBpbnZvbHZlIGNvdW50aW5nIHJlZmVyZW50cyBvZiBj b25zdGFudHMgdGhhdCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yIGEgdmFyaWFibGUsIGJ1dCBjb3Vu dGluZyBhbGwgdGhlIHJlZmVyZW50cyBvZiBvbmUgcGx1cmFsIGNvbnN0YW50LiBJbm5lciBxdWFu dGlmaWNhdGlvbiB3aWxsIGJlIGRpc2N1c3NlZCBtb3JlIHByZWNpc2VseSBpbiAoKHwjSW5uZXJf cXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKS4KCgoKT24gdGhlIG90aGVyIGhhbmQsIHB1dHRp bmcgYSBxdWFudGlmaWVyIGJlZm9yZSBnYWRyaSwgb3IgYmVmb3JlIGEgc3VtdGkgbW9yZSBnZW5l cmFsbHksIGlzIGNhbGxlZCBfX291dGVyIHF1YW50aWZpY2F0aW9uX18sIGFuZCB0aGUgcXVhbnRp ZmllciBpcyBjYWxsZWQgX19vdXRlciBxdWFudGlmaWVyX18uIE91dGVyIHF1YW50aWZpY2F0aW9u IHdpbGwgYmUgZGlzY3Vzc2VkIG1vcmUgcHJlY2lzZWx5IGluICgofCNPdXRlcl9xdWFudGlmaWNh dGlvbnxTZWN0aW9uIDMuMikpLgoKCgpBbGwgc3VtdGkgZm9ybWVkIHdpdGggZ2FkcmkgYXJlIGRl ZmluZWQgc28gdGhhdCB0aGV5IGFyZSBleHBhbmRlZCBpbnRvIGV4cHJlc3Npb25zIHdpdGgge3pv J2V9LiBUaGF0IGlzIHRvIHNheSwgdGhlIG1vc3QgZ2VuZXJhbCBwbHVyYWwgY29uc3RhbnQgaXMg cmVwcmVzZW50ZWQgYnkgYSBzaW5nbGUge3pvJ2V9LiBBIHN1bXRpIGZvcm1lZCB3aXRoIGdhZHJp IGlzIHt6bydlfSBhY2NvbXBhbmllZCBieSBhbiBleHBsYW5hdGlvbi4KCl4KCjtFeGFtcGxlOiBQ ZW9wbGUgZ2F0aGVyZWQsIGNvb2tlZCBhbmQgYXRlLgoKOzogbG8gcHJlbnUgY3Ugam1hamkgZ2kn ZSBqdWtwYSBnaSdlIGNpdGthXgoKCgpXaGlsZSB0aGUgcHJlZGljYXRlIHtqdWtwYX0gKGNvb2sp IGNhbiBiZSBpbnRlcnByZXRlZCBjb2xsZWN0aXZlbHkgYXMgd2VsbCBhcyBkaXN0cmlidXRpdmVs eSwgdGhlIHBsdXJhbCBjb25zdGFudCB7bG8gcHJlbnV9IChwZW9wbGUpIGRvZXMgbm90IHNheSBl eHBsaWNpdGx5IGlmIGl0IHNhdGlzZmllcyB7anVrcGF9IGNvbGxlY3RpdmVseSBvciBkaXN0cmli dXRpdmVseS4gSWYgd2Ugd2FudCB0byBzYXkgZXhwbGljaXRseSB0aGF0IHRoZXkgImNvbGxlY3Rp dmVseSIgY29va2VkLCB3ZSB1c2Uge2xvaX0sIHdoaWNoIHdpbGwgYmUgZGlzY3Vzc2VkIGxhdGVy LCBhbmQgc2F5IHtsb2kgcHJlbnV9LiBDb250cmFzdGl2ZWx5LCBpZiB3ZSB3YW50IHRvIHNheSBl eHBsaWNpdGx5IHRoYXQgdGhleSAiZGlzdHJpYnV0aXZlbHkiIGNvb2tlZCwgd2Ugc2F5IHtybyBs byBwcmVudX0gd2l0aCBhbiBvdXRlciBxdWFudGlmaWNhdGlvbiwgb3Ige2x1J2EgbG8gcHJlbnV9 LiBIb3dldmVyLCBhIHN1bXRpIHRoYXQgc2F5cyBleHBsaWNpdGx5IGNvbGxlY3Rpdml0eSBvciBk aXN0cmlidXRpdml0eSBpcyBub3QgbmVjZXNzYXJpbHkgYWJsZSB0byBiZSBzaGFyZWQgd2l0aCBv dGhlciBwcmVkaWNhdGUgbGlrZSB7am1haml9IG9yIHtjaXRrYX0uCgoKCjtfX2xlX18gKExFKTog e2xlIGJyb2RhfSByZWZlcnMgX19zcGVjaWZpY2FsbHlfXyB0byBhIHJlZmVyZW50IG9mIHtsbyBi cm9kYX0sIGFuZCBfX2V4cGxpY2l0bHkgZXhwcmVzcyB0aGF0IHRoZSBzcGVha2VyIGhhcyB0aGUg cmVmZXJlbnQgaW4gbWluZF9fLiBJdHMgbG9naWNhbCBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhcyB0 aGF0IG9mIHtsb30uCgp8fAoKbGUgW1tQQV0gYnJvZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kg bWkga2UnYSBkbyBza2ljdSBsbyBrYSBjZSd1IGJyb2RhIFtbZ2knZSB6aWxrYW5jdSBsaSBQQSBs byBicm9kYV0gKGt1J28pIAoKbGUgUEEgJydzdW10aScnIChrdSkgfmhzfnx+aHN+IGxlIFBBIG1l ICcnc3VtdGknJyAobWUndSkgKGt1KQoKfHwKCgoKO19fbGFfXyAoTEEpOiBJdCBpcyBwcmVmaXhl ZCB0byBzZWxicmkgb3IgY21ldmxhLCBhbmQgZm9ybXMgYSBwbHVyYWwgY29uc3RhbnQgdGhhdCBy ZWZlcnMgdG8gd2hhdCBpcyBuYW1lZCB0aGUgc2VsYnJpIG9yIGNtZXZsYSBzdHJpbmcuIEl0cyBs b2dpY2FsIHByb3BlcnR5IGlzIHRoZSBzYW1lIGFzIHRoYXQgb2Yge2xvfS4KCnx8CgpsYSBbW1BB XSBicm9kYSAoa3UpIH5oc358fmhzfiB6bydlIG5vaSBsdSBbW1BBXSBicm9kYSBsaSd1IGNtZW5l IGtlJ2EgbWkgKGt1J28pIAoKbGEgUEEgJydzdW10aScnIChrdSkgfmhzfnx+aHN+IHpvJ2Ugbm9p IGx1IFBBIHN1bXRpIGxpJ3UgY21lbmUga2UnYSBtaSAoa3UnbykgCgp8fAoKCgo7X19sb2lfXyAo TEUpLCBfX2xlaV9fIChMRSksIF9fbGFpX18gKExBKToge2xvaS9sZWkvbGFpIGJyb2RhfSByZWZl cnMgdG8gYSByZWZlcmVudCBvZiB7bG8vbGUvbGEgYnJvZGF9LCBhbmQgX19leHBsaWNpdGx5IGV4 cHJlc3MgdGhhdCB0aGUgcmVmZXJlbnQgc2F0aXNmaWVzIGEgcHJlZGljYXRlIGNvbGxlY3RpdmVs eV9fLgoKfHwKCmxvaSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbG8gW1tQQV0g YnJvZGEKCmxlaSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGUgW1tQQV0gYnJv ZGEKCmxhaSBbW1BBXSBicm9kYSB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGEgW1tQQV0gYnJvZGEK CmxvaSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxvIFBBICcnc3VtdGknJwoK bGVpIFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGUgUEEgJydzdW10aScnCgps YWkgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBndW5tYSBiZSBsYSBQQSAnJ3N1bXRpJycKCnx8 CgpCZWNhdXNlIHtsb2kvbGVpL2xhaX0gaXMgdGh1cyBkZWZpbmVkIGJ5IGFub3RoZXIgcGx1cmFs IGNvbnN0YW50IHtsbyBndW5tYSBiZSBsby9sZS9sYX0sIGl0IGRvZXMgbm90IHJlZmVyIGRpcmVj dGx5IHRvIHJlZmVyZW50IG9mIHtsbyBicm9kYX0gb3Ige2xvIFBBICcnc3VtdGknJ30sIGJ1dCBy ZWZlcmVudCBvZiB7bG8gZ3VubWF9LiBUaGVyZWZvcmUsIGV2ZW4gaWYge2xvIGJyb2RhfSBvciB7 bG8gUEEgJydzdW10aScnfSBpcyBub3QgYW4gaW5kaXZpZHVhbCwge2xvaSBicm9kYX0gb3Ige2xv aSBQQSAnJ3N1bXRpJyd9IGNhbiBiZSBhbiBpbmRpdmlkdWFsIHtsbyBndW5tYX0gdW5kZXIgdGhl IGZvbGxvd2luZyBjb25kaXRpb246Cgpecm8nb2kgZGEgcG9pIGtlJ2EgbWUgbG8gZ3VubWEgYmUg bG8vbGUvbGEgW1tQQV0gYnJvZGEgem8ndSBsbyBndW5tYSBiZSBsby9sZS9sYSBbW1BBXSBicm9k YSBjdSBtZSBkYX5wcH4KCn4vcHB+cm8nb2kgZGEgcG9pIGtlJ2EgbWUgbG8gZ3VubWEgYmUgbG8v bGUvbGEgUEEgJydzdW10aScnIHpvJ3UgbG8gZ3VubWEgYmUgbG8vbGUvbGEgUEEgJydzdW10aScn IGN1IG1lIGRhXgoKCgo7X19sbydpX18gKExFKSwgX19sZSdpX18gKExFKSwgX19sYSdpX18gKExB KToge2xvJ2kvbGUnaS9sYSdpIGJyb2RhfSByZWZlcnMgdG8gYSBzZXQgb3Igc2V0cyBvZiBpbmRp dmlkdWFsKHMpIHRoYXQgY29uc3RpdHV0ZShzKSBhIHBsdXJhbCBjb25zdGFudCB7bG8vbGUvbGEg YnJvZGF9LiBCZWNhdXNlIHtsbydpL2xlJ2kvbGEnaX0gZm9ybXMgYSBzZXQgb3Igc2V0cywgaXQg aXMgZGVmaW5lZCBvbmx5IHdoZW4gaXRzL3RoZWlyIG1lbWJlcihzKSB7bG8vbGUvbGEgYnJvZGF9 IGlzL2FyZSBhbiBpbmRpdmlkdWFsIG9yIGluZGl2aWR1YWxzLiBBIHNldCBpdHNlbGYgaXMgYWx3 YXlzIGFuIGluZGl2aWR1YWwsIGFuZCBzZXRzIGFyZSBhbHdheXMgaW5kaXZpZHVhbHM6IHRoZXJl IGlzIG5vIHNldCB0aGF0IGlzIG5vdCBhbiBpbmRpdmlkdWFsLgoKfHwKCmxvJ2kgW1tQQV0gYnJv ZGEgfmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsbyBbW1BBXSBicm9kYQoKbGUnaSBbW1BBXSBicm9k YSB+aHN+fH5oc34gbG8gc2VsY21pIGJlIGxlIFtbUEFdIGJyb2RhCgpsYSdpIFtbUEFdIGJyb2Rh IH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbGEgW1tQQV0gYnJvZGEKCmxvJ2kgUEEgJydzdW10aScn IH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbG8gUEEgJydzdW10aScnCgpsZSdpIFBBICcnc3VtdGkn JyB+aHN+fH5oc34gbG8gc2VsY21pIGJlIGxlIFBBICcnc3VtdGknJwoKbGEnaSBQQSAnJ3N1bXRp Jycgfmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsYSBQQSAnJ3N1bXRpJycKCnx8CgpCZWNhdXNlIHts bydpL2xlJ2kvbGEnaX0gaXMgZGVmaW5lZCBieSBhbm90aGVyIHBsdXJhbCBjb25zdGFudCB7bG8g c2VsY21pIGJlIGxvL2xlL2xhfSwgaXQgZG9lcyBub3QgcmVmZXIgZGlyZWN0bHkgdG8gcmVmZXJl bnQgb2Yge2xvIGJyb2RhfSBvciB7bG8gUEEgJydzdW10aScnfSwgYnV0IHJlZmVyZW50IG9mIHts byBzZWxjbWl9LgoKCgpJbiBzZXQgdGhlb3J5LCBhbiBlbXB0eSBzZXQgaXMgZGVmaW5lZCBhcyB7 bG8gc2VsY21pIGJlIG5vIGRhfSwgYW5kIGFuIGV4cHJlc3Npb24ge2xvIG5vIGJyb2RhfSBpcyBv ZmZpY2lhbGx5IG1lYW5pbmdsZXNzIChzZWUgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rp b24gMy4xKSkuIFRoaXMgaW1wbGllcyB0aGF0IGFuIGVtcHR5IHNldCBjYW5ub3QgYmUgZXhwcmVz c2VkIHdpdGgge2xvJ2kvbGUnaS9sYSdpfS4gCgoKCkFjY29yZGluZyB0byBbaHR0cDovL2pib3Zs YXN0ZS5sb2piYW4ub3JnL2RpY3Qvc2VsY21pfGpib3ZsYXN0ZV0sIHtzZWxjbWl9IGlzIGRlZmlu ZWQgYXMgZm9sbG93czp8fAoKeDEgc2VsY21pIHgyIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34g eDEgc2UgY21pbWEgcm8gbG8gbWUgeDIgbWUndSBlIG5vIGxvIG5hIG1lIHgyIHx8CgpJZiB3ZSBh Y2NlcHQgdGhpcyBkZWZpbml0aW9uLCBhIHNldCByZWZlcnJlZCB0byBieSB7bG8naS9sZSdpL2xh J2l9LXN1bXRpIGNvbnNpc3RzIG9mIG9ubHkgdGhlIHJlZmVyZW50IG9mIHtsby9sZS9sYSBbW1BB XSBicm9kYX0gb3Ige2xvL2xlL2xhIFBBICcnc3VtdGknJ30uIENvbnRyYXN0aXZlbHksIGlmIHdl IGRlZmluZSBpdCBhcyB7c2VsY21pfT17c2UgY21pbWF9LCB0aGUgc2V0IG1heSBpbmNsdWRlIHdo YXQgaXMvYXJlIG90aGVyIHRoYW4gdGhlIHJlZmVyZW50IG9mIHtsby9sZS9sYSBbW1BBXSBicm9k YX0gb3Ige2xvL2xlL2xhIFBBICcnc3VtdGknJ30uIEl0IGlzIG5vdCB5ZXQgb2ZmaWNpYWxseSBk ZXRlcm1pbmVkIHdoaWNoIGludGVycHJldGF0aW9uIGlzIHRvIGJlIGFjY2VwdGVkLgoKCgohISEj IElubmVyIHF1YW50aWZpY2F0aW9uCgooKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSyBkZWZpbmVz IGlubmVyIHF1YW50aWZpY2F0aW9uKSkgYXMgZm9sbG93czoKCnx8CgpsbyBbW1BBXSBicm9kYSB+ aHN+fH5oc34gem8nZSBub2kga2UnYSBicm9kYSBbW2dpJ2Ugemlsa2FuY3UgbGkgUEEgbG8gYnJv ZGFdCgpsbyBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIFBBIG1lICcnc3VtdGknJwoKfHwKClRo YXQgaXMgdG8gc2F5LCBpbm5lciBxdWFudGlmaWVyIG1lYW5zIG51bWJlciBvZiByZWZlcmVudCBj b3VudGVkIGJ5IHVuaXQge2xvIGJyb2RhfSBvciB7bG8gbWUgJydzdW10aScnfSB0aGF0IGlzIHgz IG9mIHt6aWxrYW5jdX0uIAoKSG93ZXZlciwgaW5zdGVhZCBvZiB7emlsa2FuY3V9LCB0aGUgbWVh bmluZyBvZiB3aGljaCBpcyB0b28gdmFndWUgZm9yIGRlZmluaXRpb24sIFtodHRwczovL2dyb3Vw cy5nb29nbGUuY29tL2QvbXNnL2xvamJhbi9SQXRFN1lrLWRxdy94aTJoNkExN0N1c0p8YW4gaWRl YSBvZiByZWRlZmluaXRpb24gdXNpbmcge21laX0gd2FzIHN1Z2dlc3RlZF0gYXMgZm9sbG93czoK CgoKO0F4aW9tIDE6IHJvJ29pIGRhIHN1J28gcGEgbWVpCgo7RGVmaW5pdGlvbjp8fAoKKEQxKSBr bydhIHN1J28gTiBtZWkgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBzdSdvaSBkYSBwb2kgbWUg a28nYSBrdSdvIHN1J29pIGRlIHBvaSBtZSBrbydhIHpvJ3UgZ2UgZGEgc3UnbyBOLTEgbWVpIGdp bmFpIGRlIG1lIGRhCgooRDIpIGtvJ2EgTiBtZWkgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBr bydhIHN1J28gTiBtZWkgZ2knZSBuYWkgc3UnbyBOKzEgbWVpIAoKKEQzKSBsbyBQQSBicm9kYSB+ aHN+fH5oc34gPWNhJ2Ugfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgUEEgbWVpIGdpJ2UgYnJvZGEK Cnx8CgoKClVzaW5nIHRoZXNlIGRlZmluaXRpb25zIGFuZCBBeGlvbSAxLCB0aGUgZm9sbG93aW5n IHRoZW9yZW0gd2lsbCBiZSBwcm92ZWQuCgpeSWYgYW5kIG9ubHkgaWYge2tvJ2EgcGEgbWVpfSwg e2tvJ2F9IGlzIGFuIGluZGl2aWR1YWwuXgoKCgo7UHJvb2Y6IChEMikgaXMKCnx8CgprbydhIE4g bWVpCXw9fCBrbydhIHN1J28gTiBtZWkgZ2knZSBuYWkgc3UnbyBOKzEgbWVpIAoKCQl8PXwgZ2Ug a28nYSBzdSdvIE4gbWVpIC0tLS0tKFMxKQoKCQl8IHwgZ2kgbmFrdSBrbydhIHN1J28gTisxIG1l aSAtLS0tLShTMikKCnx8CgpBcHBseWluZyAoRDEpIHRvIChTMiksIAoKfHwKCihTMikJCXw9fCBu YWt1IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2Egem8ndSAK CgkJfCB8IGdlIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaW5haSBkZSBtZSBkYQoKCQl8PXwgcm8n b2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBwb2kgbWUga28nYSB6byd1CgoJCXwgfCBu YWt1IGdlIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaSBuYWt1IGRlIG1lIGRhCgoJCXw9fCBybydv aSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBrbydhIHpvJ3UKCgkJfCB8IGdh bmFpIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaSBkZSBtZSBkYQoKfHwKCihEMikgaXMgdGhlcmVm b3JlCgp8fAoKa28nYSBOIG1laQl8PXwgZ2UgKFMxKSBnaSAoUzIpIAoKCQl8PXwgZ2Uga28nYSBz dSdvIE4gbWVpCgoJCXwgfCBnaSBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBv aSBtZSBrbydhIHpvJ3UKCgkJfCB8IGdhbmFpIGRhIHN1J28gTiBtZWkgCgoJCXwgfCBnaSBkZSBt ZSBkYQoKfHwKCldoZW4gTj0xLAoKfHwKCmtvJ2EgcGEgbWVpCXw9fCBnZSBrbydhIHN1J28gcGEg bWVpCgoJCXwgfCBnaSBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBr bydhIHpvJ3UKCgkJfCB8IGdhbmFpIGRhIHN1J28gcGEgbWVpIAoKCQl8IHwgZ2kgZGUgbWUgZGEg Cgp8fAoKQmVjYXVzZSBvZiBBeGlvbSAxLCBpdCBpbXBsaWVzCgp8fAoKa28nYSBwYSBtZWkJfD18 IHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndSBkZSBt ZSBkYQoKfHwKClRoZSByaWdodCBzaWRlIGltcGxpZXMge3JvJ29pIGRhIHBvaSBrZSdhIG1lIGtv J2Egem8ndSBrbydhIG1lIGRhfSwgd2hpY2ggaXMgdGhlIGNvbmRpdGlvbiBmb3IgIntrbydhfSBp cyBhbiBpbmRpdmlkdWFsIi4gSXRzIGNvbnZlcnNlIGlzIGFsc28gdHJ1ZS4KClEuRS5ELgoKCgpU aGUgZGlhZ3JhbSBiZWxvdyBzaG93cyBhIHByb2NlZHVyZSBvZiBjb3VudGluZyBzb21ldGhpbmcg dXAgdG8gZm91ciByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGguIEluIHRoaXMgZGlh Z3JhbSwgbG9vcHMgc3VjaCBhcyB7WCBtZSBYfSBhcmUgb21pdHRlZCBmb3Igc2ltcGxpY2l0eSwg dGhvdWdoIHRoZXkgZXhpc3QuIENvdW50aW5nIHVwIGNvcnJlc3BvbmRzIHRvIHNlbGVjdGluZyBh IHN1YmdyYXBoIG9mIGEgZGlyZWN0ZWQgZ3JhcGggZm9ybWVkIHdpdGgge21lfTogdGhlIHN1Ymdy YXBoIHRoYXQgaGFzIGEgZm9ybSBvZiB0cmVlIHRoYXQgaW5jbHVkZXMgYWxsIGxlYXZlcyAoY29u c3RhbnRzIGVhY2ggb2Ygd2hpY2ggaXMgYW4gaW5kaXZpZHVhbCkgdG8gYmUgY291bnRlZCwgZm9y IGV4YW1wbGUgdGhlIHBhcnQgb2YgbWFnZW50YSBjb2xvciBpbiB0aGUgZGlhZ3JhbS4KCgoKe2lt ZyBmaWxlSWQ9IjEwIiB0aHVtYj0ieSIgcmVsPSJib3hbZ10ifQoKCgohISEhIyBSZXBlYXRpbmcg aW5uZXIgcXVhbnRpZmljYXRpb24KCkJlY2F1c2Uge2xvIFBBICcnc3VtdGknJ30gaXMgZGVmaW5l ZCwgd2UgY2FuIHJlcGVhdCBpbm5lciBxdWFudGlmaWNhdGlvbiB0byBmb3JtIGFuIGFyZ3VtZW50 LgoKXgoKO0V4YW1wbGU6IGxvIG11bG5vIGthcmR5Z3JpIGN1IGd1bm1hIGxvIHZvIGxvaSBwYWNp IGthcmRhIH5oc34gJydBIGZ1bGwgZGVjayBjb25zaXN0cyBvZiBmb3VyIGdyb3VwcyBvZiB0aGly dGVlbiBjYXJkcy4nJwoKOzogc3UnbyBkYSB6byd1IGxvaSByZSBsbydpIHJvIG1va2NhIG5vaSBz ZXBsaSBweSBub2kgbW9rY2Ega3UnbyBkYSBjdSByZWxjdWt0YWkgfmhzfiAnJ1R3byBzZXRzIG9m IHBvaW50cyB0aGF0IGFyZSBlcXVpZGlzdGFudCBmcm9tIGEgcG9pbnQgUCBpcyBhIGRvdWJsZSBj aXJjbGUuJydeCgoKCiEhISEjIFByb2JsZW1zIG9uIGlubmVyIHF1YW50aWZpY2F0aW9uCgohISEh ISMgQ2Fubm90IHNheSB6ZXJvCgoKCkJlY2F1c2UgYW4gYXJndW1lbnQgZm9ybWVkIGJ5IGdhZHJp IGlzIGEgcGx1cmFsIGNvbnN0YW50LCB7bG8gYnJvZGF9IGltcGxpZXMge3N1J29pIGRhIHpvJ3Ug ZGEgYnJvZGF9IGFjY29yZGluZyB0byB0aGUgbG9naWNhbCBheGlvbSBvbiBwbHVyYWwgY29uc3Rh bnQgc2hvd24gaW4gKCh8I0FfbG9naWNhbF9heGlvbV9vbl9wbHVyYWxfY29uc3RhbnR8U2VjdGlv biAyLjIuNikpLiBUaGF0IGlzIHRvIHNheSwgdGhlIGV4cHJlc3Npb24ge2xvIG5vIGJyb2RhfSBp bXBsaWVzICJ0aGVyZSBhcmUgd2hhdCBhcmUgYnJvZGEsIHdoaWNoIGFyZSBjb3VudGVkIDAiLCB3 aGljaCBzZWVtcyBtZWFuaW5nbGVzcy4KCgoKVGhpcyBtZWFucyB0aGF0IG9mZmljaWFsIExvamJh biBjYW5ub3QgZXhwcmVzcyBuZWdhdGlvbiBvZiBleGlzdGVuY2Ugb2YgcGx1cmFsIHZhcmlhYmxl IHtuYWt1IHN1J29pIGRhfSwgd2hpY2ggaXMgbmV2ZXJ0aGVsZXNzIG5lY2Vzc2FyeSwgZm9yIGV4 YW1wbGUgaW4gdGhlIGZvbGxvd2luZyBzaXR1YXRpb246CgoKCl4gbG8geG8gcHJlbnUgY3Ugam1h amkgZ2knZSBqdWtwYSBnaSdlIGNpdGthIH5oc35+LS1+IG5vfnBwfgoKfi9wcH4nJyJIb3cgbWFu eSBwZW9wbGUgZ2F0aGVyZWQsIGNvb2tlZCBhbmQgYXRlPyIgInplcm8uIicnXgoKCgpUaGlzIHJl c3BvbnNlIGlzIGFuIGFiYnJldmlhdGVkIGZvcm0gb2Yge2xvIG5vIHByZW51IGN1IGptYWppIGdp J2UganVrcGEgZ2knZSBjaXRrYX0uCgoKClRoaXMgcHJvcG9zaXRpb24gbWVhbnMgdGhhdCB7bG8g bm8gcHJlbnV9IHNhdGlzZmllcyBzZWxicmkge2ptYWppfSBjb2xsZWN0aXZlbHkgYW5kIChqZSkg bm9uLWRpc3RyaWJ1dGl2ZWx5LCB7anVrcGF9IGNvbGxlY3RpdmVseSBvciAoamEpIGRpc3RyaWJ1 dGl2ZWx5LCB7Y2l0a2F9IG5vbi1jb2xsZWN0aXZlbHkgYW5kIChqZSkgZGlzdHJpYnV0aXZlbHku IEJlY2F1c2UgaXQgaW5jbHVkZXMgc2VsYnJpIHtqbWFqaX0gdG8gYmUgc2F0aXNmaWVkIG5vbi1k aXN0cmlidXRpdmVseSwgdGhlIHN1bXRpIGNhbm5vdCBiZSByZXBsYWNlZCBieSBuZWdhdGlvbiBv ZiBleGlzdGVuY2Ugb2YgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUge25ha3Ugc3UnbyBkYX09e25v IGRhfS4gTW9yZW92ZXIsIGJlY2F1c2UgaXQgaW5jbHVkZXMgc2VsYnJpIHtjaXRrYX0gdG8gYmUg c2F0aXNmaWVkIG5vbi1jb2xsZWN0aXZlbHksIHtsb30gb2YgdGhlIHN1bXRpIGNhbm5vdCBiZSBy ZXBsYWNlZCBieSB7bG9pfT17bG8gZ3VubWEgYmUgbG99LgoKCgpGb3IgbWFraW5nIHN1Y2ggYSBw cm9wb3NpdGlvbiBtZWFuaW5nZnVsLCBpdCBpcyBlc3NlbnRpYWwgdG8gZ2l2ZSBhbiBleHByZXNz aW9uIHtsbyBubyBicm9kYX0gYSBtZWFuaW5nIG9mIG5lZ2F0aW9uIG9mIGV4aXN0ZW5jZSBvZiBw bHVyYWwgdmFyaWFibGUuCgpGb3IgdGhpcyBwdXJwb3NlLCBJIHN1Z2dlc3QgdGhlIGZvbGxvd2lu ZyBkZWZpbml0aW9uIHZhbGlkIGluIHRoZSBjYXNlIHRoYXQgUEE9MCBmb3Ige2xvIFBBIGJyb2Rh fS4KCjtVbm9mZmljaWFsIGRlZmluaXRpb24gb2Yge2xvIG5vIGJyb2RhfTp8fAoKbG8gbm8gYnJv ZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBuYWt1IHN1J29pIGRhIHBvaSBrZSdhIGJyb2Rh Cgp8fAoKCgrvvIhJZiBpdCB3ZXJlIGRlZmluZWQgYXMge25ha3UgbG8gYnJvZGF9LCB0aGUgbmVn YXRpb24gd291bGQgaGF2ZSBzcGFubmVkIHRoZSB3aG9sZSBwcm9wb3NpdGlvbiwgYW5kIGl0IHdv dWxkIG5vdCBoYXZlIGltcGxpZWQgcXVhbnRpZmljYXRpb24uIEkgYWJhbmRvbmVkIHRoZXJlZm9y ZSBzdWNoIGEgZGVmaW5pdGlvbi4pCgoKCiEhISEhIyBDYW5ub3QgcXVhbnRpZnkgbWF0ZXJpYWwg bm91biBvciBzb21ldGhpbmcKCkF4aW9tIDEgb2YgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNl Y3Rpb24gMy4xKSkgZXhjbHVkZXMgc3VtdGkgdGhhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwg bm9yIGluZGl2aWR1YWxzIGZyb20gZXhwcmVzc2lvbnMgeyhzdSdvKSBOIG1laX0gYW5kIHtsbyBO IGJyb2RhfS4KCgoKQ2FuIHdlIHVzZSB7cGlQQX0gZm9yIHN1bXRpIHRoYXQgaXMgbmVpdGhlciBh biBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscywgdGhlbj8gTm8uCgooKEJQRksgU2VjdGlvbjog Z2Fkcml8QWN0dWFsbHksIHBpUEEgaXMgZGVmaW5lZCBvbmx5IGZvciBvdXRlciBxdWFudGlmaWNh dGlvbi4pKQoKfHwKCnBpUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBwaVBBIHNpJ2UgYmUgcGEg bWUgJydzdW10aScnCgp8fAoKQXMgd2UgY2FuIHNlZSBpbiB0aGUgZGVmaW5pdGlvbiwgdGhlIGJv ZHkgb2Ygb3V0ZXIgcXVhbnRpZmljYXRpb24gYnkge3BpUEF9IGlzIHBsdXJhbCBjb25zdGFudCB7 bG8gcGlQQSBzaSdlfSwgd2hpY2ggaXMgbm90IGEgYm91bmQgc2luZ3VsYXIgdmFyaWFibGUuIEhv d2V2ZXIsIHgyIG9mIHtwaVBBIHNpJ2V9IGlzIHtwYSBtZSAnJ3N1bXRpJyd9LCB0byB3aGljaCAo KEJQRksgU2VjdGlvbjogZ2Fkcml8dGhlIGRlZmluaXRpb24gb2YgUEEgYnJvZGEpKSBpcyBhcHBs aWVkOgoKfHwKClBBIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kgYnJvZGEgCgp8fAoKQXMgYSBy ZXN1bHQsIHtwaVBBICcnc3VtdGknJ30gaXMgZGVmaW5lZCBvbmx5IHdoZW4gdGhlcmUgaXMgYW4g aW5kaXZpZHVhbCB0aGF0IHNhdGlzZmllcyB4MSBvZiB7bWUgJydzdW10aScnfS4gVGhhdCBpcyB0 byBzYXksIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscyBpcyBl eGNsdWRlZCBhbHNvIGZyb20gYW4gZXhwcmVzc2lvbiBvZiBvdXRlciBxdWFudGlmaWNhdGlvbiB3 aXRoIHtwaVBBfS4KCgoKV2hhdCB3b3VsZCBiZSBpZiB7cGlQQX0gd2VyZSBkZWZpbmVkIGFsc28g Zm9yIGlubmVyIHF1YW50aWZpY2F0aW9uPwoKSW4gdGhhdCBjYXNlLCB0aGUgZm9sbG93aW5nIGRl ZmluaXRpb24gd291bGQgYmUgZGVzaXJhYmxlIHRvIGNvbmZvcm0gdGhlIGRlZmluaXRpb24gb2Yg e3BpUEF9IG9mIG91dGVyIHF1YW50aWZpY2F0aW9uOgoKOyBVbm9mZmljaWFsIGRlZmluaXRpb24g b2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0aW9uOnx8CgpsbyBwaVBBIGJyb2RhIH5oc358 fmhzfiA9Y2EnZSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBwaVBBIHNpJ2UgYmUgbG8gcGEgYnJv ZGEKCnx8CgpUaGlzIGRlZmluaXRpb24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0aW9u IHN0aWxsIGV4Y2x1ZGVzIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlk dWFscyB1bmxlc3Mge2xvIHBhIGJyb2RhfSBpcyBkZWZpbmVkIGluIGFub3RoZXIgd2F5IHNvIHRo YXQgaXQgY2FuIGJlIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFs cy4KCgoKV2h5IGRvbid0IHdlIHVzZSB7UEEgc2knZX0gdG8gZXhwcmVzcyBxdWFudGlmaWNhdGlv biBvZiB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHM/IAoKSXQg aXMgcG9zc2libGUsIGJ1dCAoKEJQRksgU2VjdGlvbjogTnVtZXJpYyBzZWxicml8QlBGSydzIGN1 cnJlbnQgZGVmaW5pdGlvbiBvZiB7c2knZX0pKSBkZXBlbmRzIG9uIHtwYWdidX06Cgp8fAoKeDEg bnVtYmVyIHNpJ2UgeDIgfmhzfnx+aHN+IHgxIHBhZ2J1IHgyIGdpJ2Uga2xhbmkgbGkgbnVtYmVy IGxvIHNlIGdyYWR1IGJlIHgyCgp8fAoKSWYgd2UgaW50ZXJwcmV0IHtwYWdidX0gc28gdGhhdCB4 MSBpcyBub3QgbGFyZ2VyIHRoYW4geDIgKGFuZCB0aGlzIGlzIG9yZGluYXJ5IGludGVycHJldGF0 aW9uKSwgW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3 L25VYlppd21CMk0wSnx7c2knZX0gaXMgdmVyeSBpbmNvbnZlbmllbnQgYmVjYXVzZSB0aGUgdW5p dCBzaG91bGQgYmUgY2hhbmdlZCBldmVyeSB0aW1lIGNvdW50aW5nIHVwLl0gSWYge3NpJ2V9IHdl cmUgZGVmaW5lZCBzbyB0aGF0IFBBIG9mIHtQQSBzaSdlfSBjb3VsZCBiZSBsYXJnZXIgdGhhbiAx LCB7c2knZX0gd291bGQgaGF2ZSBiZWVuIHByYWdtYXRpYyBmb3IgcXVhbnRpZmljYXRpb24gb2Yg d2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpCZXNpZGVz IHRob3NlIGNvbnNpZGVyYXRpb25zLCBpZiB3ZSBhYmFuZG9uIEF4aW9tIDEgb2YgKCh8I0lubmVy X3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSksIERlZmluaXRpb25zIChEMSkgKEQyKSAoRDMp IGNhbiBiZSBhcHBsaWVkIHRvIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRp dmlkdWFscy4KCkluIHRoaXMgY2FzZSwgYSBzcGVha2VyIHNob3VsZCBzZWxlY3Qgc29tZSBwbHVy YWwgY29uc3RhbnRzIHtrbydhLCBrbydlLCAuLi59LCBhbmQgZGVjaWRlIHRoYXQge1tba28nYS9r bydlLy4uLl0gc3UnbyBwYSBtZWl9OyB0aGUgc2VsZWN0aW9uIG11c3QgYmUgZG9uZSBhdHRlbnRp dmVseSBzbyB0aGF0IHJlZmVyZW50cyBvZiBwbHVyYWwgY29uc3RhbnRzIHRoYXQgYXJlIHtwYSBt ZWl9IGRvIG5vdCBvdmVybGFwIHdpdGggZWFjaCBvdGhlci4KClRob3NlIHByZXBhcmF0aW9ucyBv ZiB7a28nYSwga28nZSwgLi4ufSBhbmQgKEQyKSBpbXBseSBvbmx5Cgp8fAoKZ2FuYWkgW1trbydh L2tvJ2UvLi4uXSBwYSBtZWkgCgpnaSBybydvaSBkZSBwb2kgbWUgW1trbydhL2tvJ2UvLi4uXSB6 byd1IGRlIG1lIFtba28nYS9rbydlLy4uLl0KCnx8CgpVbmRlciB0aGVzZSBjb25kaXRpb25zLCB0 aGVyZSBpcyBubyBuZWVkIHRoYXQgd2hhdCBpcyB4MSBvZiB7cGEgbWVpfSBpcyBhbiBpbmRpdmlk dWFsLgoKCgpXaGVuIHdlIHVzZSBEZWZpbml0aW9ucyAoRDEpIChEMikgKEQzKSB3aXRob3V0IHVz aW5nIEF4aW9tIDEgb2YgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSksIGEg Y29uZGl0aW9uIHtnaSdlIHN1J28gcGEgbWVpfSBtdXN0IGJlIGFkZGVkIHRvIHtkZX0gb2YgKEQx Ke+8iFdoZW4gQXhpb20gMSBpcyB1c2VkLCByZWZlcmVudHMgaW4gdGhlIGRvbWFpbiBvZiB2YXJp YWJsZSB7ZGV9IHNhdGlzZmllcyB0aGlzIGNvbmRpdGlvbiBhdXRvbWF0aWNhbGx5KS4gCgo7VW5v ZmZpY2lhbCBkZWZpbml0aW9ucyB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgQXhpb20gMSBpcyBh YmFuZG9uZWQ6fHwKCihEMScpIGtvJ2Egc3UnbyBOIG1laSB+aHN+fH5oc34gPWNhJ2Ugfmhzfnx+ aHN+IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2EgZ2knZSBz dSdvIHBhIG1laSB6byd1IGdlIGRhIHN1J28gTi0xIG1laSBnaW5haSBkZSBtZSBkYQoKKEQyKSBr bydhIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34ga28nYSBzdSdvIE4gbWVpIGdpJ2Ug bmFpIHN1J28gTisxIG1laSAKCihEMykgbG8gUEEgYnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358 fmhzfiB6bydlIG5vaSBrZSdhIFBBIG1laSBnaSdlIGJyb2RhCgp8fAoKVXNpbmcgdGhlc2UgZGVm aW5pdGlvbnMsIGlubmVyIHF1YW50aWZpY2F0aW9uIG9mIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRp dmlkdWFsIG5vciBpbmRpdmlkdWFscyBiZWNvbWVzIHBvc3NpYmxlLiBNb3Jlb3ZlciwgIlVub2Zm aWNpYWwgZGVmaW5pdGlvbiBvZiB7cGlQQX0gb2YgaW5uZXIgcXVhbnRpZmljYXRpb24iIGRpc2N1 c3NlZCBhYm92ZSBiZWNvbWVzIGFibGUgdG8gYmUgYXBwbGllZCB0byB3aGF0IGlzIG5laXRoZXIg YW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKClRoZSBkaWFncmFtIGJlbG93IHNob3dz IGEgcHJvY2VkdXJlIG9mIGNvdW50aW5nIHVwIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFs IG5vciBpbmRpdmlkdWFscyByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGguIEluIHRo aXMgZGlhZ3JhbSwgbG9vcHMgc3VjaCBhcyB7WCBtZSBYfSBhcmUgb21pdHRlZCBmb3Igc2ltcGxp Y2l0eSwgdGhvdWdoIHRoZXkgZXhpc3QuIEFtb25nIGluZmluaXRlIG51bWJlciBvZiB2ZXJ0aWNl cyAocGx1cmFsIGNvbnN0YW50cyksIHRoZSB2ZXJ0aWNlcyB0aGF0IGEgc3BlYWtlciBzZWxlY3Rl ZCBhcyB7c3UnbyBwYSBtZWl9IGFyZSBjb2xvcmVkIHBpbmsuIENvdW50aW5nIHVwIGNvcnJlc3Bv bmRzIHRvIHNlbGVjdGluZyBhIHRyZWUgdGhhdCBpcyBhIHN1YmdyYXBoIG9mIGEgZGlyZWN0ZWQg Z3JhcGggZm9ybWVkIHdpdGgge21lfSwgZm9yIGV4YW1wbGUgdGhlIHBhcnQgb2YgYmx1ZSBjb2xv ciBpbiB0aGUgZGlhZ3JhbS4KCgoKe2ltZyBmaWxlSWQ9IjkiIHRodW1iPSJ5IiByZWw9ImJveFtn XSJ9CgoKCiEhISMgT3V0ZXIgcXVhbnRpZmljYXRpb24KCigoQlBGSyBTZWN0aW9uOiBnYWRyaXxC UEZLIGRlZmluZXMgb3V0ZXIgcXVhbnRpZmljYXRpb24pKSBhcyBmb2xsb3dzOgoKfHwKClBBICcn c3VtdGknJyB+aHN+fH5oc34gUEEgZGEgcG9pIGtlJ2EgbWUgJydzdW10aScnCgpQQSBicm9kYSB+ aHN+fH5oc34gUEEgZGEgcG9pIGJyb2RhIAoKcGlQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIHBp UEEgc2knZSBiZSBwYSBtZSAnJ3N1bXRpJycKCnx8CgoKCk91dGVyIHF1YW50aWZpY2F0aW9uIGV4 Y2VwdCB7cGlQQX0gZm9ybXMge1BBIGRhfSwgd2hpY2ggaXMgb2ZmaWNpYWxseSBhIGJvdW5kIHNp bmd1bGFyIHZhcmlhYmxlLiBJdCBpbXBsaWVzIHRoYXQgdGhlc2UgYXJndW1lbnRzIHNhdGlzZnkg YSBwcmVkaWNhdGUgX19kaXN0cmlidXRpdmVseV9fLiBGb3IgZXhhbXBsZSwgaXQgaXMgbWVhbmlu Z2xlc3MgdG8gdXNlIHtjaSBsbyBwcmVudX0gYXMgeDEgb2Yge2ptYWppfSAoZ2F0aGVyKSwgYmVj YXVzZSBpdCBpcyBub3QgdGhlIGNhc2UgdGhhdCBlYWNoIG9mIHRocmVlIHBlb3BsZSBzYXRpc2Zp ZXMgdGhlIHByZWRpY2F0ZSAiZ2F0aGVyIi4KCgoKSG93ZXZlciwgaWYgd2UgdXNlIHVub2ZmaWNp YWwgcGx1cmFsIHF1YW50aWZpZXJzIHtybydvaX0gb3Ige3N1J29pfSBmb3IgUEEsIG91dGVyIHF1 YW50aWZpY2F0aW9uIGNhbiBmb3JtIGJvdW5kIHBsdXJhbCB2YXJpYWJsZS4gRm9yIGV4YW1wbGUs Cgpec3Unb2kgcHJlbnUgY3Ugam1hamkgfmhzfiB0aGVyZSBhcmUgcGVvcGxlIHdobyBnYXRoZXIu XgoKVGhpcyBwcm9wb3NpdGlvbiBpcyBpbXBsaWVkIGJ5IGEgcHJvcG9zaXRpb24gaW5jbHVkaW5n IHBsdXJhbCBjb25zdGFudAoKXmxvIHByZW51IGN1IGptYWppIH5oc34gUGVvcGxlIGdhdGhlci5e Cgp3aXRoIHRoZSBsb2dpY2FsIGF4aW9tIGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFs X2NvbnN0YW50fFNlY3Rpb24gMi4yLjYpKS4KCgoKe1BBIGxvIGJyb2RhfSBkaWZmZXJzIGZyb20g e1BBIGJyb2RhfSBpbiBkb21haW4gb2YgcmVmZXJlbnRzIG9mIGJvdW5kIHNpbmd1bGFyIHZhcmlh YmxlIHRvIGJlIGNvdW50ZWQuIFRoZSBkZWZpbml0aW9ucyBvZiBvdXRlciBxdWFudGlmaWNhdGlv biBhcmUgYXBwbGllZCB0byB0aGVtIGFzIGZvbGxvd3M6Cgp8fAoKUEEgbG8gYnJvZGEgfmhzfnx+ aHN+IFBBIGRhIHBvaSBrZSdhIG1lIGxvIGJyb2RhIH5oc358fmhzfiBUaGUgZG9tYWluIG9mIGJv dW5kIHNpbmd1bGFyIHZhcmlhYmxlIGlzIGEgcmVmZXJlbnQgb2YgcGx1cmFsIGNvbnN0YW50IHts byBicm9kYX0gaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYW5kIGNvdW50ZWQgdG8gYmUg UEEKClBBIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kga2UnYSBicm9kYSB+aHN+fH5oc34gVGhl IGRvbWFpbiBvZiBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSBpcyBhbGwgdGhhdCBhcmUge2Jyb2Rh fSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBhbmQgY291bnRlZCB0byBiZSBQQQoKfHwK CgoKXgoKO0V4YW1wbGUgMTogcm8gam1pdmUgYmEgbW9yc2kgfmhzfiAnJ0FsbCBsaXZpbmcgdGhp bmdzIHdpbGwgZGllLicnCgo7RXhhbXBsZSAyOiBybyBsbyBwcmVudSB0aSBrbGFtYSB+aHN+ICcn QWxsIHRoZSBwZW9wbGUgY29tZSBoZXJlLicnXgoKRXhhbXBsZSAxIG1lbnRpb25zIGFsbCB7am1p dmV9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIEluIHRoZSB1bml2ZXJzZSBvZiBkaXNj b3Vyc2Ugb2YgRXhhbXBsZSAyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhhdCB0aGVy ZSBhcmUge3ByZW51fSBvdGhlciB0aGFuIHRoZSByZWZlcmVudCBvZiB0aGUgcGx1cmFsIGNvbnN0 YW50IHtsbyBwcmVudX0uCgoKClRoZSBvdXRlciBxdWFudGlmaWNhdGlvbiBieSB7cGlQQX0gZm9y bXMgcGx1cmFsIGNvbnN0YW50IHtsbyBwaVBBIHNpJ2V9LiBIb3dldmVyLCB4MiBvZiB7cGlQQSBz aSdlfSBpcyBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSB7cGEgbWUgJydzdW10aScnfS4ge3BpfSBp biB0aGlzIGRlZmluaXRpb24gbWVhbnMgIm5vdCBsYXJnZXIgdGhhbiAxIjsgcHJhY3RpY2FsbHks IHtmaSd1fSBvciBzb21ldGhpbmcgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiB7cGl9CgoKCiEhISEj IENvbWJpbmF0aW9uIG9mIG91dGVyIGFuZCBpbm5lciBxdWFudGlmaWNhdGlvbnMKClRoZSBkZWZp bml0aW9ucyBvZiBpbm5lciBhbmQgb3V0ZXIgcXVhbnRpZmljYXRpb24gaW1wbHkgdGhlIGZvbGxv d2luZyBpbnRlcnByZXRhdGlvbnM6Cgp8fAoKTSBsbyBbW05dIGJyb2RhIH5oc358fmhzfiBNICh3 aGljaCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgZGlzdHJpYnV0aXZlbHkpIG9mIHtsbyBicm9kYX0g W1t0aGF0IGFyZSBOXQoKTSBsb2kgW1tOXSBicm9kYSB+aHN+fH5oc34gTSAod2hpY2ggc2F0aXNm aWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8gZ3VubWF9IHRoYXQgY29uc2lz dHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpNIGxvJ2kgW1tOXSBicm9kYSB+aHN+fH5o c34gTSAod2hpY2ggc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8g c2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBs byBbW05dIGJyb2RhIH5oc358fmhzfiBRdWFudGl0eSB7cGkgTSBzaSdlfSBvZiBhIHBhcnQgb2Yg b25lIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBsb2kgW1tOXSBicm9kYSB+aHN+ fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IG9mIG9uZSBvZiB7bG8gZ3VubWF9 IHRoYXQgY29uc2lzdHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpwaSBNIGxvJ2kgW1tO XSBicm9kYSB+aHN+fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IChzdWJzZXQp IG9mIG9uZSBvZiB7bG8gc2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0 IGFyZSBOXQoKfHwKCgoKQW1vbmcgdGhlbSwge00gbG8gW1tOXSBicm9kYX0gYW5kIHtwaSBNIGxv aSBbW05dIGJyb2RhfSBjYW4gZXhwcmVzcyBzb21lIG9mIHBsdXJhbCBudW1iZXIgb2YgdGhpbmdz LgoKXgoKO0V4YW1wbGUgMTogcmUgbG8gW1tjaV0gbWxhdHUgbWkgdmlza2EgfmhzfiAnJ1R3byBb W29mIHRocmVlXSBjYXRzIHNlZSBtZS4nJwoKO0V4YW1wbGUgMjogcmUgZmkndSBjaSBsb2kgW1t2 ZWkgY2kgcGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thIH5oc34gJydUd28gdGhpcmQgb2Yg W1szbl0gY2F0cyBzZWUgbWUuJydeCgoKCntyZSBsbyBbW2NpXSBtbGF0dX0gb2YgRXhhbXBsZSAx IHJlZmVycyB0byB0d28gY2F0cyBhbW9uZyBbW3RocmVlXSBjYXRzIHRoYXQgYXJlIHJlZmVyZW50 IG9mIHtsbyBbW2NpXSBtbGF0dX0uCgpJZiB0aGUgaW5uZXIgcXVhbnRpZmllciB7Y2l9IGlzIG5v dCBzYWlkLCBpdCBpcyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgYXJlIHJlZmVycmVkIHRvIGJ5IHts byBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBsbyBtbGF0dX0gcmVmZXJzIHRvIHR3byBvZiB0aGVt LgoKCgpJbiBFeGFtcGxlIDIsIHRoZSBhcmd1bWVudCBpcyBmb3JtZWQgYnkge2xvaX0sIGFuZCB0 aGUgcmVmZXJlbnQgaXMgYWN0dWFsbHkge2xvIGd1bm1hfS4gRXhwYW5kaW5nIEV4YW1wbGUgMiBh Y2NvcmRpbmcgdG8gdGhlIGRlZmluaXRpb25zIG9mIHtsb2l9IGFuZCB7cGlQQSAnJ3N1bXRpJyd9 LAoKXgoKO0V4YW1wbGUgMi0xOiBsbyByZSBmaSd1IGNpIHNpJ2UgYmUgcGEgbWUgbG8gZ3VubWEg YmUgbG8gW1t2ZWkgY2kgcGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thXgoKVGhhdCBpcyB0 byBzYXksIHtyZSBmaSd1IGNpIGxvaS4uLn0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiBhbiBpbmRp dmlkdWFsIHtwYSBtZSBsbyBndW5tYS4uLn0uIFRoaXMge2xvIGd1bm1hfSBjb25zaXN0cyBvZiB7 dmVpIGNpIHBpJ2kgbnkgKHZlJ28pfSBjYXRzLiAKCklmIHRoZSBpbm5lciBxdWFudGlmaWVyIGlz IG5vdCBzYWlkLCBpdCBpcyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgY29uc3RpdHV0ZSB7bG8gZ3Vu bWF9IHRoYXQgaXMge2xvaSBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBmaSd1IGNpIGxvaSBtbGF0 dX0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiB7bG8gZ3VubWF9LiBIb3dldmVyLCAKCl5yZSBmaSd1 IGNpIGxvaSBtbGF0dSBtaSB2aXNrYV4KCmlzIG1lYW5pbmdmdWwgb25seSB3aGVuIHtsb2kgbWxh dHV9IGNvbnNpc3RzIG9mIDNuIGNhdHMsIGJlY2F1c2UgaXQgaXMgbm90IG9yZGluYXJ5IHRvIGlu dGVycHJldCB0aGF0IGEgZnJhZ21lbnQgb2YgYSBjYXQgc2F0aXNmaWVzIHRoZSBwcmVkaWNhdGUg e3Zpc2thfS4KCkFjY29yZGluZyB0byBCUEZLJ3MgZGVmaW5pdGlvbiwge2xvaX0gY2Fubm90IGZv cm0gYSBwbHVyYWwgY29uc3RhbnQgdGhhdCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWNvbGxl Y3RpdmVseS4gSWYgeW91IHdhbnQgdG8gbWVhbiAiY2F0cyBzZWUgbWUgbm9uLWNvbGxlY3RpdmVs eSIsIGF2b2lkIHtsb2l9LCBvciB1c2Uge2x1J2F9LCB3aGljaCB3aWxsIGJlIGRpc2N1c3NlZCBp biAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2VjdGlvbiAz LjMpKToKCl5sdSdhIHJlIGZpJ3UgY2kgbG9pIG1sYXR1IG1pIHZpc2thXgoKCgohISEhIyBCb3Vu ZCB2YXJpYWJsZXMgYW5kIGNvbnN0YW50cyBpbiBhIHN0YXRlbWVudAoKV2hlbiBib3RoZSBib3Vu ZCB2YXJpYWJsZXMgYW5kIGNvbnN0YW50cyBhcHBlYXIgaW4gYSBzdGF0ZW1lbnQsIHRoZSBjb25z dGFudHMgZG8gbm90IG5lY2Vzc2FyaWx5IHNwYW4gb3ZlciBhbGwgYm91bmQgdmFyaWFibGVzLiBB bHRob3VnaCB0aGV5IGFyZSBjYWxsZWQgImNvbnN0YW50cyIsIGl0IGlzIG5vdCBnZW5lcmFsbHkg ZGV0ZXJtaW5lZCB3aGV0aGVyIHRoZXkgcmVmZXIgdG8gY29tbW9uIHJlZmVyZW50cyBmb3IgYWxs IHJlZmVyZW50cyBpbiBkb21haW5zIG9mIHZhcmlhYmxlcywgb3IgdGhleSByZWZlciB0byBkaWZm ZXJlbnQgcmVmZXJlbnRzIGRlcGVuZGVudCBvbiByZWZlcmVudHMgaW4gZG9tYWlucyBvZiB2YXJp YWJsZXMuIFRoZSByZWFzb24gZm9sbG93cyBiZWxvdyAoW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5j b20vZC9tc2cvbG9qYmFuL1JBdEU3WWstZHF3L0FCRGZPZnVveldFSnxEaXNjdXNzaW9uXSkuCgoK CldoZW4gc29tZSBzdW10aSBvZiB0ZXJicmkgaW4gYSBzdGF0ZW1lbnQgYXJlIG9taXR0ZWQsIGl0 IGlzIGNvbnNpZGVyZWQgdGhhdCB0aGVyZSBhcmUgaW1wbGljaXQge3pvJ2V9IGluIHRob3NlIHBs YWNlcyAoW2h0dHA6Ly9kYWcuZ2l0aHViLmlvL2NsbC83LzcvfENMTCA3LjddKS4KCkZvciBleGFt cGxlLAoKXnJvIG1sYXR1IGN1IGpiZW5hfnBwfgoKfi9wcH4gICcnQWxsIGNhdHMgYXJlL3dpbGwg YmUgYm9ybi4nJ14KCnNlZW1zIHRvIGJlIHRydWUgZnJvbSBhIHN0YW5kYXJkIHBvaW50IG9mIHZp ZXcuIEFjY29yZGluZyB0byBkZWZpbml0aW9uIG9mIHRlcmJyaSBvZiB7amJlbmF9LCBpdCBpcyBj b25zaWRlcmVkIHRoYXQgdGhyZWUgc3VtdGkgYXJlIG9taXR0ZWQsIGFuZCB0aGlzIHN0YXRlbWVu dCBoYXMgdGhlIHNhbWUgbWVhbmluZyBhcwoKXnJvIG1sYXR1IGN1IGpiZW5hIHpvJ2Ugem8nZSB6 bydlXgoKaW4gd2hpY2gge3pvJ2V9IGFyZSBleHBsaWNpdC4gCgpVbmxlc3MgYWxsIGNhdHMgaW4g dGhpcyB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgYXJlL3dpbGwgYmUgYm9ybiB0byBjb21tb24gcGFy ZW50cyBhdCB0aGUgc2FtZSB0aW1lIGF0IHRoZSBzYW1lIHBsYWNlLCB0aGVzZSB7em8nZX0gY2Fu bm90IGJlIGNvbnNpZGVyZWQgYXMgY29tbW9uIGNvbnN0YW50cyBmb3IgYWxsIHJlZmVyZW50cyBp biBhIGRvbWFpbiBvZiB7cm8gbWxhdHV9LiBJbiBvcmRlciB0byBtYWtlIHN1Y2ggYW4gZXhwcmVz c2lvbiBsaWtlIHtybyBtbGF0dSBjdSBqYmVuYX0gaGF2ZSBpbnRlbmRlZCBtZWFuaW5nLCAiY29u c3RhbnRzIiBvZiBMb2piYW4gY2FuIGJlIGRlcGVuZGVudCBvbiByZWZlcmVudHMgaW4gZG9tYWlu cyBvZiBib3VuZCB2YXJpYWJsZXMuCgoKCiJDb25zdGFudHMiIGluIHRoaXMgbWVhbmluZyBjb3Jy ZXNwb25kIHRvIFNrb2xlbSBmdW5jdGlvbnMgaW4gU2tvbGVtIG5vcm1hbCBmb3JtcyBvZiBwcmVk aWNhdGUgbG9naWMuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyBjb21wYXJpc29uIG9mIGludGVycHJl dGF0aW9ucyBiZXR3ZWVuIHByZWRpY2F0ZSBsb2dpYywgeG9ybG8gb24gd2hpY2ggdGhpcyBjb21t ZW50YXJ5IGRlcGVuZHMgYW5kIGltcGxpY2l0IHF1YW50aWZpZXIgKFtodHRwOi8vZGFnLmdpdGh1 Yi5pby9jbGwvNi8xL3xDTEwgdmVyLjEuMCBDaGFwdGVyIDZdKSB3aGljaCB3YXMgYWJvbGlzaGVk LiBUaGUgZXhwcmVzc2lvbnMgdGhhdCBoYXZlIHRoZSBzYW1lIHRydXRoIHZhbHVlIGFyZSBhbGln bmVkIGluIHRoZSBzYW1lIGNvbHVtbi4gVXBwZXIgY2FzZSBZIHJlcHJlc2VudHMgYSBwbHVyYWwg dmFyaWFibGUuIFRoZSByb3cgb2Ygem8nZSt4b3JsbyBzaG93cyB1bm9mZmljaWFsIHN1Z2dlc3Rp b24gb2YgaW50ZXJwcmV0YXRpb24uIEluIHRoZSBncmF5IHBhcnQgaW4gdGhlIHJvdyBvZiBQcmVu ZXggbm9ybWFsLCB1bm9mZmljaWFsIGV4cHJlc3Npb25zIHdpdGggYW4gZXhwZXJpbWVudGFsIGNt YXZvIHtzdSdvaX0gYXJlIHNob3duLiAoQ2xpY2sgb24gdGhlIHRhYmxlIHRvIGVubGFyZ2UuKQoK e2ltZyBmaWxlSWQ9IjEyIiB0aHVtYj0ieSIgbGluaz0iZGlzcGxheTExIiByZWw9ImJveFtnXSJ9 CgoKCiEhISMgUmVsYXRpb24gYmV0d2VlbiBsdSdhLCBsdSdvLCBsdSdpIGFuZCBnYWRyaQoKKChC UEZLIFNlY3Rpb246IEluZGlyZWN0IFJlZmVyZXJzfEJQRksgZGVmaW5lcykpIHtsdSdhfSwge2x1 J299LCB7bHUnaX0gb2YgTEFoRSBhcyBmb2xsb3dzOgoKfHwKCmx1J2EgJydzdW10aScnIH5oc358 fmhzfiBsbyBtZSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGNtaW1hIGJlICcnc3VtdGknJyBbW25v aSBzZWxjbWldCgpsdSdvICcnc3VtdGknJyB+aHN+fH5oc34gbG9pIG1lICcnc3VtdGknJwoKbHUn aSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvJ2kgbWUgJydzdW10aScnCgp8fAoKSG93ZXZlciwgZ3Vl c3NpbmcgZnJvbSB0aGUgRW5nbGlzaCBkZWZpbml0aW9ucyBvbiB0aGUgc2FtZSBwYWdlLCB0aGUg ZGVmaW5pdGlvbiBvZiB7bHUnYX0gaXMgdW5zYXRpc2ZhY3RvcnksIGFuZCB0aGF0IG9mIHtsdSdv fSBoYXMgc29tZSBwcm9ibGVtLgoKCgp7bHUnYX0gZXh0cmFjdHMgeDIgb2Yge3NlbGNtaX0gZnJv bSBzdW10aSB0aGF0IGlzIHtsbyBzZWxjbWl9LCBhbmQgeDIgb2Yge2d1bm1hfSBmcm9tIHN1bXRp IHRoYXQgaXMge2xvIGd1bm1hfS4gTW9yZW92ZXIsIHtsdSdhfSBtYWtlcyBleHBsaWNpdCB0aGF0 IHRoZSBzdW10aSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgZGlzdHJpYnV0aXZlbHkgYW5kIG5vbi1j b2xsZWN0aXZlbHkuIE9uIHRoZSBvdGhlciBoYW5kLCBhY2NvcmRpbmcgdG8gdGhlIGRlZmluaXRp b24gb2Yge2xvfSwge2xvIG1lICcnc3VtdGknJ30gZG9lcyBub3QgaW1wbHkgImRpc3RyaWJ1dGl2 ZWx5IGFuZCBub24tY29sbGVjdGl2ZWx5Ii4KCgoKe2x1J299IG1ha2VzIGV4cGxpY2l0IHRoYXQg dGhlIHN1bXRpIHNhdGlzZmllcyBhIHByZWRpY2F0ZSBub24tZGlzdHJpYnV0aXZlbHkgYW5kIGNv bGxlY3RpdmVseS4gT24gdGhlIG90aGVyIGhhbmQsIGFjY29yZGluZyB0byB0aGUgZGVmaW5pdGlv biBvZiB7bG9pfSwge2xvaSBtZSAnJ3N1bXRpJyd9IHNhdGlzZmllcyBhIHByZWRpY2F0ZSBjb2xs ZWN0aXZlbHksIGJ1dCBzdGlsbCB1bmNsZWFyIGlmIGl0IGRvZXMgbm9uLWRpc3RyaWJ1dGl2ZWx5 LiBGb3IgY29uc2lzdGVuY3ksIGl0IHdvdWxkIGJlIGJldHRlciB0byBhZGQgIntsb2kgYnJvZGF9 IGltcGxpZXMgdGhhdCByZWZlcmVudCBvZiB4MSBvZiBicm9kYSBjb2xsZWN0aXZlbHkgYW5kIG5v bi1kaXN0cmlidXRpdmVseSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUiIHRvIHRoZSBkZWZpbml0aW9u IG9mIHtsb2l9LgoKCgpBcyBhIGNvbmNsdXNpb24gb2YgdGhpcyBzZWN0aW9uLCBJIHN1Z2dlc3Qg dG8gcmUtZGVmaW5lIHtsdSdhfSBhcyBmb2xsb3dzOgoKOyBVbm9mZmljaWFsIGRlZmluaXRpb24g b2Yge2x1J2F9Onx8CgpsdSdhICcnc3VtdGknJyB+aHN+fH5oc34gbG8gY21pbWEgYmUgJydzdW10 aScnIG5vaSBzZWxjbWkga3Ugb25haSBsbyBzZSBndW5tYSBiZSAnJ3N1bXRpJycgbm9pIGd1bm1h IGt1IG9uYWkgbG8gbWUgJydzdW10aScnIGt1IH5wcH4KCn4vcHB+IH5oc34gdnUnbyBub2kgc3Un byBkYSB6byd1IGRhIG1lIGtlJ2EgZ2knZSBubydhCgp8fAoKSW4ge25vaX0gY2xhdXNlIGFmdGVy IHt2dSdvfSwgaXQgaXMgbWFkZSBleHBsaWNpdCB0aGF0IHRoZSByZWZlcmVudCBvZiB7bHUnYSAn J3N1bXRpJyd9IGRpc3RyaWJ1dGl2ZWx5IHNhdGlzZmllcyB0aGUgc2VudGVuY2UgdGhhdCBpbmNs dWRlcyB0aGlzIHN1bXRpLgoKCgohISEjIFJlbGF0aW9uIGJldHdlZW4gam8ndSwgam9pLCBjZSBh bmQgZ2FkcmkKCigoQlBGSyBTZWN0aW9uOiBOb24tbG9naWNhbCBDb25uZWN0aXZlc3xBY2NvcmRp bmcgdG8gQlBGSyBTZWN0aW9uKSkge2pvJ3V9LCB7am9pfSBhbmQge2NlfSBvZiBzZWxtYSdvIEpP SSBhcmUgZGVmaW5lZCBhcyBmb2xsb3dzOnx8CgpfX1hfXyBqbyd1IF9fWV9fIH5oc358fmhzfiBs byBzdXptZWkgbm9pIF9fWF9fIC5lIF9fWV9fIC5lIG5vIGRyYXRhIGJlIF9fWF9fIC5lIF9fWV9f IGN1IG1lIGtlJ2EKCl9fWF9fIGpvaSBfX1lfXyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgX19YX18g LmUgX19ZX18gLmUgbm8gZHJhdGEgYmUgX19YX18gLmUgX19ZX18KCl9fWF9fIGNlIF9fWV9fIH5o c358fmhzfiBsbyBzZSBjbWltYSBiZSBfX1hfXyAuZSBfX1lfXyAuZSBubyBkcmF0YSBiZSBfX1hf XyAuZSBfX1lfXwoKfHwKClRoZXkgY29ycmVzcG9uZCByZXNwZWN0aXZlbHkgdG8ge2xvfSwge2xv aX0sIHtsbydpfSBvZiBnYWRyaS4gVGhleSBjb25uZWN0IHR3byBzdW10aToge2pvJ3V9IGZvcm1z IGEgcGx1cmFsIGNvbnN0YW50LCB7am9pfSBhIG5vbi1kaXN0cmlidXRpdmUgcGx1cmFsIGNvbnN0 YW50LCB7Y2V9IGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHNldChzKSB0aGF0IGNv bnNpc3Qocykgb2YgdGhlIHN1bXRpIHRoYXQge2NlfSBjb25uZWN0cy4gSW4gdGhlIEVuZ2xpc2gg ZGVmaW5pdGlvbiBvZiB7am9pfSBvZiBCUEZLLCAibm9uLWRpc3RyaWJ1dGl2ZSIgaXMgbWVudGlv bmVkLiBUaGlzIGZhY3QgYWxzbyBzdXBwb3J0cyB0aGUgc3VnZ2VzdGlvbiBpbiAoKHwjUmVsYXRp b25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2VjdGlvbiAzLjMpKSB0byBhZGQg Intsb2kgYnJvZGF9IGltcGxpZXMgdGhhdCByZWZlcmVudCBvZiB4MSBvZiBicm9kYSBjb2xsZWN0 aXZlbHkgYW5kIG5vbi1kaXN0cmlidXRpdmVseSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUiIHRvIHRo ZSBkZWZpbml0aW9uIG9mIHtsb2l9LgoKCgpFdmVuIGlmIF9fWF9fIG9yIF9fWV9fIGFyZSBib3Vu ZCB2YXJpYWJsZXMsIHRoZXNlIGNvbm5lY3RpdmVzIGZvcm0gY29uc3RhbnRzLiBJbiB0aGlzIGNh c2UsIGl0IGlzIG5vdCBkZXRlcm1pbmVkIHdoZXRoZXIgdGhlIGZvcm1lZCBjb25zdGFudHMgZGVw ZW5kIG9uIF9fWF9fIGFuZCBfX1lfXywgb3IgdGhleSBhcmUgY29tbW9uIHRvIGFsbCBfX1hfXyBh bmQgX19ZX18gaW4gdGhlaXIgZG9tYWlucy4gU2VlICgofCNCb3VuZF92YXJpYWJsZXNfYW5kX2Nv bnN0YW50c19pbl9hX3N0YXRlbWVudHxTZWN0aW9uIDMuMi4yKSkgZm9yIGRldGFpbC4KCgoKQmVj YXVzZSB0aGV5IGFyZSBjbWF2byBpbiBzZWxtYSdvIEpPSSwgdGhleSBjYW4gY29ubmVjdCB3aGF0 IGFyZSBub3Qgc3VtdGksIGJ1dCB0aGUgbWVhbmluZ3MgaW4gdGhpcyB1c2FnZSBhcmUgbm90IG9m ZmljaWFsbHkgZGVmaW5lZC4gVGhleSBjYW4gZm9ybSBhbHNvIGZvcmV0aG91Z2h0IGNvbm5lY3Rp dmUge0pPSSBnaSBfX1hfXyBnaSBfX1lfX30uIFdoZW4gdGhlIGZvcmV0aG91Z2h0IGNvbm5lY3Rp dmVzIGFyZSB1c2VkIGZvciBzdW10aSwgdGhleSBmb3JtIHRoZSBzYW1lIGNvbnN0YW50cyBhcyB0 aGUgYWZ0ZXJ0aG91Z2h0IHVzYWdlIGRlZmluZWQgYWJvdmUuCgoKCiEhIyBOb3RlcwoKVGhpcyBz ZWN0aW9uIGNvbnNpc3RzIG9mIG5vdGVzIG9mIHRoZSBhdXRob3IgZ3Vza2FudCwgYW5kIGl0IGlz IG5vdCBhdCBhbGwgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIGdhZHJpLgoKCgohISEjIEFi b3V0IG9udG9sb2d5CgpeKChCUEZLIFNlY3Rpb246IGdhZHJpfCcnUG9zaXRpdmUgaW1wYWN0OiBT b21lIHVzYWdlcyB0aGF0IG1ha2UgbGl0dGxlIHNlbnNlIHdpdGgge2xvfT17c3Unb30gYmVjb21l IHZhbGlkYXRlZC4nJykpIGFjY29yZGluZyB0byBCUEZLLl4KCgoKe2xvfT17c3Unb30gd2FzIGFi YW5kb25lZCwgYnV0IGJlY2F1c2Ugb2YgdGhlIGZhY3QgdGhhdCB7bG8gYnJvZGF9IGlzIGEgcGx1 cmFsIGNvbnN0YW50LCBhbmQgYmVjYXVzZSBvZiBhIGxvZ2ljYWwgYXhpb20gb2YgcGx1cmFsIGNv bnN0YW50IGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2NvbnN0YW50fFNlY3Rpb24g Mi4yLjYpKSwge2xvIGJyb2RhIGN1IGJyb2RlfSBpbXBsaWNpdGx5IGltcGxpZXMge3N1J29pIGRh IGJyb2RlfS4KCgoKISEhIyBjbGF4dSB4MgoKXigoQlBGSyBTZWN0aW9uOiBnYWRyaXxsZSBjbWFu YSBfX2xvX18gY2lkamEgYmEgY2xheHUpKX5wcH4KCn4vcHB+ICAnJ0luIHRoZSBtb3VudGFpbnMg dGhlcmUgaXMgbm8gZm9vZC4nJ35wcH4KCn4vcHB+KChsYXBvaSBwZWx4dSBrdSdvIHRyYWp5bm9i bGkpKV4KCgoKRXhwYW5kaW5nIHtsbyBjaWRqYX0sIAoKXmxlIGNtYW5hIHpvJ2Ugbm9pIGtlJ2Eg Y2lkamEga3UnbyBiYSBjbGF4dV4KCkFjY29yZGluZyB0byAoKEJQRksgU2VjdGlvbjogU3Vib3Jk aW5hdG9yc3x0aGUgZGVmaW5pdGlvbiBvZiB7bm9pfSkpLCAKCl5sZSBjbWFuYSB6bydlIHRvIHJp IHhpIHJhdSBjaWRqYSB0b2kgYmEgY2xheHVeCgpUaGUgcGFydCBiZXR3ZWVuIHt0b30gYW5kIHt0 b2l9IGlzIGEgcGFyZW50aGV0aWNhbCBleHByZXNzaW9uLiBUaGUgbWFpbiBwcm9wb3NpdGlvbiBp cyB0aHVzCgpebGUgY21hbmEgem8nZSBiYSBjbGF4dV4KCndoZXJlIHt6bydlfSBpcyBhIHBsdXJh bCBjb25zdGFudC4gQWNjb3JkaW5nIHRvIHRoZSBsb2dpY2FsIGF4aW9tIG9mIHBsdXJhbCBjb25z dGFudCBpbiAoKHwjQV9sb2dpY2FsX2F4aW9tX29uX3BsdXJhbF9jb25zdGFudHxTZWN0aW9uIDIu Mi42KSksIFRoaXMgcHJvcG9zaXRpb24gaW1wbGllcyAKCl5zdSdvaSBkYSB6byd1IGxlIGNtYW5h IGRhIGJhIGNsYXh1XgoKd2hpY2ggbWVhbnMgdGhhdCB0aGVyZSBpcyBhIHJlZmVyZW50IG9mICJ3 aGF0IGlzIGxhY2tlZCBieSB0aGUgbW91bnRhaW4iIGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vy c2UuCgpUaGUgc3RyYW5nZW5lc3MgY29tZXMgZnJvbSB0aGUgZmFjdCB0aGF0IHgyIG9mIHtjbGF4 dX0gX19hcHBhcmVudGx5X18gbWVhbnMgbm9uLWV4aXN0ZW5jZS4gV2UgY2FuIGludGVycHJldCBp dCBjb25zaXN0ZW50bHkgdGhhdCB7Y2xheHV9IG1lYW5zIG9ubHkgdGhhdCB0aGUgcmVmZXJlbnQg b2YgeDIgaXMgbm90IHBsYWNlZCBhdCB0aGUgcmVmZXJlbnQgb2YgeDEsIGFuZCBpdCBzYXlzIG5v dGhpbmcgYWJvdXQgZXhpc3RlbmNlIGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIAoKCgoh ISEjIHpvJ2UgaXMgYSBwbHVyYWwgY29uc3RhbnQKCkFzc3VtaW5nIHRoYXQge3pvJ2V9IGNhbiBi ZSBhbnkgb2YgZnJlZSB2YXJpYWJsZSwgYm91bmQgcGx1cmFsIHZhcmlhYmxlIG9yIHBsdXJhbCBj b25zdGFudCwgdGhlIGxhbmd1YWdlIHdvdWxkIGJlIG1vcmUgcmVhc29uYWJsZSBmcm9tIGEgbG9n aWNhbCBwb2ludCBvZiB2aWV3LgoKSG93ZXZlciwgdGhpcyBpZGVhIHdhcyBjbGVhcmx5IGRlbmll ZCBpbiBbaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL3RvcGljL2xvamJhbi9SQXRFN1lrLWRx dy9kaXNjdXNzaW9ufHRoZSBkaXNjdXNzaW9uXS4gVGhhdCBpcyB0byBzYXksIHt6bydlfSBpcyBh bHdheXMgYSBwbHVyYWwgY29uc3RhbnQgYWNjb3JkaW5nIHRvIHRoZSBvZmZpY2lhbCBpbnRlcnBy ZXRhdGlvbi4KCkkgd2lsbCBleGFtaW5lIHRoZXNlIGNvbmZsaWN0aW5nIGlkZWFzLCBhbmQgdHJ5 IHRvIHNvbHZlIHNvbWUgcHJvYmxlbXMgY2F1c2VkIGJ5IHRoZSBvZmZpY2lhbCBpbnRlcnByZXRh dGlvbiB0aGF0IHt6bydlfSBpcyBhIHBsdXJhbCBjb25zdGFudC4KCgoKISEhISMgSWYgem8nZSBj b3VsZCBiZSBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZQoKSSB3aWxsIGxpc3QgdXAgaGVyZSBtZXJp dHMgYW5kIGRlbWVyaXRzIG9mIGFzc3VtaW5nIHRoYXQge3pvJ2V9IGluIG5vIGNvbnRleHQgaXMg YSBmcmVlIHZhcmlhYmxlLCBhbmQgdGhhdCB0aGUgY29udGV4dCBkZXRlcm1pbmVzIHRoZSB1bml2 ZXJzZSBvZiBkaXNjb3Vyc2UsIGJhc2VkIG9uIHdoaWNoIHt6bydlfSBpcyByZWdhcmRlZCBhcyBz dWJzdGl0dXRlZCBmb3IgYnkgYSBwbHVyYWwgY29uc3RhbnQsIG9yIGJvdW5kIGJ5IGEgcGx1cmFs IHF1YW50aWZpZXIuCgoKCiEhISEhIyBNZXJpdHMKClVuZGVyIHRoaXMgYXNzdW1wdGlvbiwgdGhl cmUgaXMgbm8gbmVlZCB0byBleGNsdWRlIHRoZSBjYXNlIFBBPTAgb2Yge2xvIFBBIGJyb2RhfSwg b3IgZ2l2ZSBpdCBhbiB1bm9mZmljaWFsIGRlZmluaXRpb24gYXMgZGlzY3Vzc2VkIGluICgofCND YW5ub3Rfc2F5X3plcm98U2VjdGlvbiAzLjEuMi4xKSkuIEl0IGlzIGJlY2F1c2UgaWYge2xvIFBB IGJyb2RhfSBpbiBubyBjb250ZXh0IGlzIGEgZnJlZSB2YXJpYWJsZSwgd2UgY2FuIGludGVycHJl dCBpdCwgd2hlbiBhIGNvbnRleHQgaXMgZ2l2ZW4sIGFzIHN1YnN0aXR1dGVkIGZvciBieSBhIHBs dXJhbCBjb25zdGFudCBvciBib3VuZCBieSBhIHBsdXJhbCBxdWFudGlmaWVyIGxpa2Uge3N1J29p IGRhfSBpbiB0aGUgY2FzZSBvZiBQQT4wOyB3ZSBjYW4gaW50ZXJwcmV0IGl0IGFzIGJvdW5kIGJ5 IHtuYWt1IHN1J29pIGRhfSBpbiB0aGUgY2FzZSBvZiBQQT0wIGFzIHdlbGwuCgoKClRoaXMgYXNz dW1wdGlvbiBtYWtlcyB0aGUgaW50ZXJwcmV0YXRpb24gY2xvc2VyIHRvIG5hdHVyYWwgbGFuZ3Vh Z2VzIG5vdCBvbmx5IGluIHRoZSBjYXNlIFBBPTAgYnV0IGFsc28gaW4gdGhlIGNhc2UgUEE+MC4g Rm9yIGV4YW1wbGUsIAoKXmxvIGNpIHhhbnRvIGN1IHppbGthbmN1IGxpIGNpIGxvIHhhbnRvXgoK VGhlIGxhc3Qge2xvIHhhbnRvfSBpcyBhIHVuaXQgb2YgY291bnRpbmcuIEl0IGlzIG5hdHVyYWwg dG8gaW50ZXJwcmV0IGl0IGFzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIHF1YW50aWZpZWQgYnkg IjEiIHJhdGhlciB0aGFuIGEgcGx1cmFsIGNvbnN0YW50LCB3aGljaCBzaG91bGQgcmVmZXIgdG8g c29tZXRoaW5nLiBJZiB3ZSBpbnRlcnByZXQgaXQgYXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUs IHdlIHNob3VsZCBjb25zaWRlciB0aGUgcmVsYXRpdmUgb3JkZXIgd2l0aCB0aGUgb3RoZXIgYm91 bmQgdmFyaWFibGVzIGFuZCB7bmFrdX0uIFdlIGNhbiBoYW5kbGUgdGhlIG9yZGVyIGZyZWVseSBi eSBwdXR0aW5nIHRoZSBhcmd1bWVudHMgaW4gcHJlbmV4LgoKCgpNb3Jlb3ZlciwgdGhpcyBhc3N1 bXB0aW9uIGVtYm9kaWVzIHRoZSBwcm9wZXJ0eSBvZiBuYXR1cmFsIGxhbmd1YWdlcyB0aGF0IHRo ZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIG5vIGNvbnRleHQgaXMgZ2VuZXJhbGx5 IGluZGVmaW5pdGUuIEJ5IGludGVycHJldGluZyB0aGF0IHt6bydlfSBpbiBubyBjb250ZXh0IGlz IGEgZnJlZSB2YXJpYWJsZSwgd2hpY2ggd2lsbCBiZSBzdWJzdGl0dXRlZCBmb3IgYnkgYSBwbHVy YWwgY29uc3RhbnQgb3IgYm91bmQgYnkgYSBwbHVyYWwgcXVhbnRpZmllciB3aGVuIGEgY29udGV4 dCBpcyBnaXZlbiwgbmF0dXJhbCBpbnRlcnByZXRhdGlvbiBvZiBMb2piYW4gc2VudGVuY2UgaXMg cG9zc2libGUgd2l0aG91dCBsb3NpbmcgbG9naWNhbCBhc3BlY3RzIGFuZCBzdHJ1Y3R1cmFsIGJl YXV0eS4KCgoKISEhISEjIERlbWVyaXRzCgpCZWNhdXNlIHt6bydlfSBjYW4gYmUgYSBmcmVlIHZh cmlhYmxlLCBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBvciBhIHBsdXJhbCBjb25zdGFudCBkZXBl bmRpbmcgb24gdGhlIGNvbnRleHQsIGEgc2luZ2xlIGJyaWRpIGRvZXMgbm90IGxldCBsaXN0ZW5l cnMgZGV0ZXJtaW5lIHdoaWNoIG9mIHRoZW0gaXMgdGhlIGN1cnJlbnQge3pvJ2V9LCBvciB0aGUg dHJ1dGggdmFsdWUgb2YgdGhlIHByb3Bvc2l0aW9uLgoKSG93ZXZlciwgc3VjaCBhbiBhc3BlY3Qg dGhhdCB0aGUgdHJ1dGggdmFsdWUgb2YgYSBwcm9wb3NpdGlvbiBnZW5lcmFsbHkgZGVwZW5kcyBv biB0aGUgY29udGV4dCBpcyBhIGNvbW1vbiBwcm9wZXJ0eSB0byBhbGwgbmF0dXJhbCBsYW5ndWFn ZXMuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBldmVuIGlmIHdlIHRha2UgdGhlIG9mZmljaWFsIGlu dGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGFsd2F5cyBhIHBsdXJhbCBjb25zdGFudCwgbGlz dGVuZXJzIGFyZSBvbmx5IGluZm9ybWVkIGJ5IHt6bydlfSB0aGF0IGEgY2VydGFpbiB1bml2ZXJz ZSBvZiBkaXNjb3Vyc2UgaXMgZ2l2ZW4uIFdpdGggbm8gY29udGV4dCwgdGhlcmUgaXMgbm8gd2F5 IHRvIGRldGVybWluZSB3aGF0IGlzIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIFRoZSB0cnV0 aCB2YWx1ZSBvZiBhIHByb3Bvc2l0aW9uIGluIG5vIGNvbnRleHQgaXMgaW5kZWZpbml0ZSBldmVu IHdpdGggdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uLgoKCgohISEhIyBQcm9ibGVtcyBjYXVz ZWQgYnkgdGhlIGZhY3QgdGhhdCB6bydlIGlzIGEgcGx1cmFsIGNvbnN0YW50IGFuZCB0aGUgY291 bnRlci1tZWFzdXJlcwoKVGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlz IGEgcGx1cmFsIGNvbnN0YW50IGNhdXNlcyB0aGUgZm9sbG93aW5nIHByb2JsZW1zLgoKCgohISEh ISMgQ2Fubm90IGV4cHJlc3MgcGx1cmFsIHF1YW50aWZpY2F0aW9uIG9mIG5vbi1leGlzdGVuY2UK ClJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb24gb2Yge2xvIG5vIGJyb2RhfSBpcyBvZmZpY2lhbGx5 IGV4Y2x1ZGVkIGZyb20gTG9qYmFuLiBUaGF0IGlzIHRvIHNheSwgTG9qYmFuIGNhbm5vdCBvZmZp Y2lhbGx5IGRlYWwgd2l0aCB0aGUgZXhwcmVzc2lvbiAidGhlcmUgaXMgbm90IHdoYXQgaXMgc3Vi c3RpdHV0ZWQgZm9yIHtkYX0iIGZvciBwbHVyYWwgdmFyaWFibGUgKHtuYWt1IHN1J29pIGRhfSks IHdoaWNoIGlzIG5hdHVyYWxseSBkZWFsdCB3aXRoIGJ5IHBsdXJhbCBxdWFudGlmaWNhdGlvbi4g SW4gb3JkZXIgdG8gZXhwcmVzcyB7bG8gbm8gYnJvZGF9IHdpdGggcmVhc29uYWJsZSBpbnRlcnBy ZXRhdGlvbiwgd2UgbmVlZCBhbiB1bm9mZmljaWFsIGludGVycHJldGF0aW9uIGxpa2UgKCh8I0Nh bm5vdF9zYXlfemVyb3xTZWN0aW9uIDMuMS4yLjEpKS4KCgoKISEhISEjIENhbm5vdCBleHByZXNz IGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgd2hpY2ggZG9lcyBub3Qgc3BlY2lmeSBhIHJlZmVyZW50 CgpCZWNhdXNlIHRoZSBvZmZpY2lhbCBpbnRlcnByZXRhdGlvbiBkb2VzIG5vdCBhbGxvdyB7bG8g UEEgYnJvZGF9IHRvIGJlIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIGRlcGVuZGluZyBvbiB0aGUg Y29udGV4dCwgYW4gYXJndW1lbnQgdGhhdCBzaG91bGQgcmVmZXIgdG8gbm90aGluZywgYSB1bml0 IG9mIGNvdW50aW5nIGZvciBleGFtcGxlLCBzaG91bGQgYmUgaW50ZXJwcmV0ZWQgYXMgYSBwbHVy YWwgY29uc3RhbnQsIHdoaWNoIHJlZmVycyB0byBzb21ldGhpbmcuIEZvciBleGFtcGxlIAoKXmxv IGNpIHhhbnRvIGN1IHppbGthbmN1IGxpIGNpIGxvIHhhbnRvXgoKZm9yIHdoaWNoIHdlIGFyZSBj b21wZWxsZWQgdG8gaW50ZXJwcmV0IHRoYXQgdGhlcmUgaXMgdGhlICJFbGVwaGFudCBkZXMgQXJj aGl2ZXMiIGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGp1c3QgbGlrZSB0aGUgIk3DqHRy ZSBkZXMgQXJjaGl2ZXMiIChhbHRob3VnaCBpdCBoYXMgYWxyZWFkeSBmaW5pc2hlZCBpdHMgcm9s ZSksIGluIG9yZGVyIHRvIHVzZSB7bG8geGFudG99IGFzIGEgdW5pdCBpbiBhIHByb3Bvc2l0aW9u LgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgZWxlbWVudGFyeSBwYXJ0aWNsZXMgd2l0aCBsbwoK QXMgbG9uZyBhcyB7bG8gYnJvZGF9IGlzIGludGVycHJldGVkIGFzIGEgcGx1cmFsIGNvbnN0YW50 LCB0aGUgZm9sbG93aW5nIExvamJhbiBzZW50ZW5jZSBpcyBtZWFuaW5nbGVzczoKCgoKXmxvIGd1 c2thJ3UgY3UgZ2F1IGptYWppIHNlcGknbyBsbyBsZW5qbyBnaSdlIHBhZ3JlIGxvIGZlbnJhfnBw fgoKfi9wcH4nJ1Bob3RvbnMgYXJlIGNvbmRlbnNlZCBieSBsZW5zZXMsIGFuZCBwYXNzIHRocm91 Z2ggc2xpdHMuJydeCgoKCkFjdHVhbGx5LCBwaG90b25zIGFyZSBpbmRpdmlkdWFscywgYW5kIHdl IGNhbiBjb3VudCB0aGVtLCBidXQgd2UgY2Fubm90IGRpc3Rpbmd1aXNoIGVhY2ggb2YgdGhlbTog d2UgY2Fubm90IHJlZmVyIHRvIGEgc3BlY2lmaWMgcGhvdG9uLiBRdWFudGlmaWNhdGlvbiBpcyBp bmRlZWQgc3VpdGFibGUgZm9yIGFyZ3VtZW50cyB0aGF0IHJlcHJlc2VudCBwYXJ0aWNsZXMgbGlr ZSBwaG90b25zLiBIb3dldmVyLCBMb2piYW4gb2ZmaWNpYWxseSBkb2VzIG5vdCBoYXZlIGEgcGx1 cmFsIHF1YW50aWZpZXIsIGFuZCBjYW5ub3QgZXhwcmVzcyBxdWFudGlmaWNhdGlvbiBvZiAgc3Vt dGkgdGhhdCBzYXRpc2ZpZXMgc2VsYnJpIGJvdGggY29sbGVjdGl2ZWx5IGFuZCBkaXN0cmlidXRp dmVseS4gTW9yZW92ZXIsIGJlY2F1c2Uge2xvIGJyb2RhfSBpcyBvZmZpY2lhbGx5IGFsd2F5cyBh IHBsdXJhbCBjb25zdGFudCwgdGhlcmUgaXMgbm8gcm9vbSB0byBpbnRlcnByZXQge2xvIGd1c2th J3V9IGFzIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlLiBJbiBvcmRlciB0byBzb2x2ZSB0aGUgcHJv YmxlbSwgd2Ugc2hvdWxkIHVzZSBhbiB1bm9mZmljaWFsIHBsdXJhbCBxdWFudGlmaWVyIHtzdSdv aX0gc3VnZ2VzdGVkIGJ5ICgoeG9yeGVzfGxhIHhvcnhlcykpLgoKCgpec3Unb2kgZGEgcG9pIGtl J2EgZ3Vza2EndSBjdSBnYXUgam1hamkgc2VwaSdvIGxvIGxlbmpvIGdpJ2UgcGFncmUgbG8gZmVu cmFeCgoKCiEhISEhIyBIb3cgdG8gaW50ZXJwcmV0IGEgcHJldmFpbGluZyB2aWV3CgpUaGUgZm9s bG93aW5nIGV4YW1wbGUgaXMgZ2l2ZW4gb24gKChCUEZLIFNlY3Rpb246IGdhZHJpfEJQRksncyBn YWRyaSBwYWdlKSk6CgoKCl5sbyBwYSBwaXhyYSBjdSBzZSB2YW1qaSBsbyBraSdvIHZhbHNpfnBw fgoKfi9wcH4nJ09uZSBwaWN0dXJlIGlzIHdvcnRoIGEgdGhvdXNhbmQgd29yZHMuJycgXgoKCgpF dmVuIGluIHN1Y2ggYSBzZW50ZW5jZSB0aGF0IHNlZW1zIGEgcHJldmFpbGluZyB2aWV3LCB7bG8g cGEgcGl4cmF9IGFuZCB7bG8ga2knbyB2YWxzaX0gYXJlIGludGVycHJldGVkIGFzIHJlZmVycmlu ZyB0byBzb21ldGhpbmcuIFdlIHNob3VsZCBwcmVwYXJlIHNvbWUgcmVmZXJlbnRzIG9mIHN1bXRp IG9mIGEgcHJldmFpbGluZyB2aWV3IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuCgoKCklu dHVpdGlvbmFsbHkgc3BlYWtpbmcsIHdlIG1heSB1c2Uge2xvJ2V9IGluc3RlYWQgb2Yge2xvfSwg YnV0IHdlIGNhbm5vdCB5ZXQgZXhwbGFpbiB7bG8nZX0gZnJvbSBhIGxvZ2ljYWwgcG9pbnQgb2Yg dmlldyBiZWNhdXNlICgoQlBGSyBTZWN0aW9uOiBUeXBpY2Fsc3xhY3R1YWxseSB0aGVyZSBpcyBu byBvZmZpY2lhbCBjb25jbHVzaW9uIGFib3V0IHJlbGF0aW9uIGJldHdlZW4ge2xvJ2V9IGFuZCB7 bG99KSkuCgoKCkFzIGEgbWV0aG9kIG9mIGF2b2lkaW5nIG1lbnRpb24gb2YgYSByZWZlcmVudCBp biBhbiBleHByZXNzaW9uIG9mIHByZXZhaWxpbmcgdmlldywgd2UgbWF5IHB1dCB0aGUgd2hvbGUg cHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlLiBJbiBmYWN0LCB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bv c2l0aW9uIGluIE5VIGNsYXVzZSBkb2VzIG5vdCBpbmZsdWVuY2UgdHJ1dGggdmFsdWUgb2YgdGhl IG91dGVyIHByb3Bvc2l0aW9uIChyZWZlcmVudGlhbGx5IG9wYXF1ZTsgdGhpcyB0b3BpYyBpcyBy ZWxhdGVkIHRvIFtodHRwOi8vZGFnLmdpdGh1Yi5pby9jbGwvOS83L3xDTEw5LjddKS4gSW4gb3Ro ZXIgd29yZHMsIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ugb2YgYSBwcm9wb3NpdGlvbiBpbiBO VSBjbGF1c2UgaXMgZGlmZmVyZW50IGZyb20gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBvZiBh IHByb3Bvc2l0aW9uIG91dCBvZiBOVS4KCklmIHdlIGFjY2VwdCB0aGlzIG1ldGhvZCwgdGhlIGV4 YW1wbGUgYWJvdmUgd2lsbCBiZSBtb2RpZmllZCwgdXNpbmcge3NpJ299IGZvciBleGFtcGxlLCBh cyBmb2xsb3dzOgoKCgpec2knbyBsbyBwYSBwaXhyYSBjdSBzZSB2YW1qaSBsbyBraSdvIHZhbHNp IH5wcH4KCn4vcHB+JydJcyBhbiBpZGVhIHRoYXQgb25lIHBpY3R1cmUgaXMgd29ydGggYSB0aG91 c2FuZCB3b3Jkcy4nJ14KCgoKd2hlcmUgeDEgb2Yge3NpJ299IGlzIGltcGxpY2l0IHt6bydlfSwg d2hpY2ggaGFzIGEgcmVmZXJlbnQgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4gQXMgYW4g aW50ZXJwcmV0YXRpb24gb2YgYSBwcmV2YWlsaW5nIHZpZXcsIHN1cHBvc2luZyBhIHJlZmVyZW50 IG9mIHgxIG9mIHtzaSdvfSBpcyBtb3JlIG5hdHVyYWwgdGhhbiBzdXBwb3NpbmcgYSByZWZlcmVu dCBvZiB7bG8gcGEgcGl4cmF9IG9yIHtsbyBraSdvIHZhbHNpfS4KCihTdWNoIGEgYnJpZGkgd2l0 aCBubyB0ZXJicmkgaXMgY2FsbGVkICJvYnNlcnZhdGl2ZSIgaW4gKChUaGUgQ29tcGxldGUgTG9q YmFuIExhbmd1YWdlKSksIGJ1dCB0aGlzIGludGVycHJldGF0aW9uIGlzIG5vdCBzdWl0YWJsZSBo ZXJlLCBiZWNhdXNlIHRoaXMgaXMgbm90IHRoZSB1dHRlcmFuY2UgdGhhdCBpcyBhbHdheXMgY2F1 c2VkIGJ5IGEgc3BlY2lmaWMgc3RpbXVsdXMuKQoKCgohISEhISMgSG93IHRvIGV4cHJlc3MgZnJl ZSB2YXJpYWJsZXMKCkFzIGEgY3VzdG9tLCBrbydWL2ZvJ1Ygc2VyaWVzIG9mIEtPaEE0IGFyZSB1 c2VkIGFzIGZyZWUgdmFyaWFibGVzIGluIGRlZmluaXRpb25zIG9mIHdvcmRzIG9yIHNvbWV0aGlu Zy4gSG93ZXZlciwgdGhleSBhcmUgYWN0dWFsbHkgcGx1cmFsIGNvbnN0YW50cy4KCklmIHdlIGFi YW5kb24gdGhpcyBjdXN0b20sIHtrZSdhfSBhbmQge2NlJ3V9IGFyZSBzdWl0YWJsZSBmb3IgZXhw cmVzc2lvbiB3aXRoIGZyZWUgdmFyaWFibGVzIChvcGVuIHNlbnRlbmNlKSwgYmVjYXVzZSB0aGUg dHJ1dGggdmFsdWUgb2YgYnJpZGkgaW4gd2hpY2gge2tlJ2F9IG9yIHtjZSd1fSBpcyB1c2VkIGlz IGluZGVmaW5pdGUuIAoKSW4gYSBicmlkaSBpbiB3aGljaCB7a2UnYX0gYXBwZWFycyB0d28gdGlt ZXMgb3IgbW9yZSwgdGhlc2Uge2tlJ2F9cyBhcmUgcmVnYXJkZWQgYXMgcmVwcmVzZW50aW5nIGFu IGlkZW50aWNhbCBzdW10aToKCl5kYSBwb2kga2UnYSBneSB4bHVyYSBrZSdhIGN1IHBhbmNpIGxv IGthJ2Ugc2UgY2l0a2F+cHB+Cgp+L3Bwfn4tLX4gKChsbyBudSBiaW54bykpXgoKT24gdGhlIG90 aGVyIGhhbmQsIGluIGEgYnJpZGkgaW4gd2hpY2gge2NlJ3V9IGFwcGVhcnMgdHdvIHRpbWVzIG9y IG1vcmUsIHRoZXNlIHtjZSd1fXMgYXJlIG5vdCBuZWNlc3NhcmlseSByZWdhcmRlZCBhcyByZXBy ZXNlbnRpbmcgYW4gaWRlbnRpY2FsIHN1bXRpOgoKXmxvIG1hbXRhIGpvJ3UgbG8gbWVuc2kgY3Ug c2lteHUgbG8ga2EgY2UndSBjaXNtYSBmYSdhIGNlJ3V+cHB+Cgp+L3Bwfn4tLX4gKChsbyBudSBi aW54bykpXgoKQ29uc2lkZXJpbmcgdGhlc2UgcHJvcGVydGllcywgaW4gb3JkZXIgdG8gZXhwcmVz cyBhbiBvcGVuIHNlbnRlbmNlIHdpdGggZnJlZSB2YXJpYWJsZXMgaW4gbm8gY29udGV4dCwge2Nl J3V9IGlzIG1vcmUgY29udmVuaWVudCB0aGFuIHtrZSdhfSB3aGljaCBoYXMgcmVzdHJpY3Rpb24g b2YgaWRlbnRpY2FsIHN1bXRpLgoKXmNlJ3UgY2UndSBjaXRrYX5wcH4KCn4vcHB+JydBIGVhdHMg Qi4nJyAoT3BlbiBzZW50ZW5jZSwgdHJ1dGggdmFsdWUgaW5kZWZpbml0ZS4pXgoKCgoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KV2lraWNoYW5nZXMgbWFp bGluZyBsaXN0Cldpa2ljaGFuZ2VzQGxvamJhbi5vcmcKaHR0cDovL21haWwubG9qYmFuLm9yZy9t YWlsbWFuL2xpc3RpbmZvL3dpa2ljaGFuZ2VzCg==