Received: from localhost ([::1]:37810 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1W79oX-00077y-5y; Sat, 25 Jan 2014 12:26:49 -0800 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:37278 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1W79oP-00077m-4V for wikineurotic@lojban.org; Sat, 25 Jan 2014 12:26:46 -0800 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Sat, 25 Jan 2014 12:26:40 -0800 From: "Apache" Date: Sat, 25 Jan 2014 12:26:40 -0800 To: wikineurotic@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: 2.0 (++) X-Spam_score: 2.0 X-Spam_score_int: 20 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 wavelessonscontinuedp3 was changed by klaki at 20:26 UTC Comment: Wrote/rewrote lessons 28-30, fixed link to wave part 2, moved kau-section You can view the page by following this link: http://www.lojban.org/tiki/wavelessonscontinuedp3 [...] Content analysis details: (2.0 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.6 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT [173.13.139.235 listed in bb.barracudacentral.org] 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS Subject: [Wikineurotic] Wiki page wavelessonscontinuedp3 changed by klaki X-BeenThere: wikineurotic@lojban.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: webmaster@lojban.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: wikineurotic-bounces@lojban.org VGhlIHBhZ2Ugd2F2ZWxlc3NvbnNjb250aW51ZWRwMyB3YXMgY2hhbmdlZCBieSBrbGFraSBhdCAy MDoyNiBVVEMKQ29tbWVudDogV3JvdGUvcmV3cm90ZSBsZXNzb25zIDI4LTMwLCBmaXhlZCBsaW5r IHRvIHdhdmUgcGFydCAyLCBtb3ZlZCBrYXUtc2VjdGlvbgoKWW91IGNhbiB2aWV3IHRoZSBwYWdl IGJ5IGZvbGxvd2luZyB0aGlzIGxpbms6CiAKaHR0cDovL3d3dy5sb2piYW4ub3JnL3Rpa2kvd2F2 ZWxlc3NvbnNjb250aW51ZWRwMwoKWW91IGNhbiB2aWV3IGEgZGlmZiBiYWNrIHRvIHRoZSBwcmV2 aW91cyB2ZXJzaW9uIGJ5IGZvbGxvd2luZyB0aGlzIGxpbms6IApodHRwOi8vd3d3LmxvamJhbi5v cmcvdGlraS90aWtpLXBhZ2VoaXN0b3J5LnBocD9wYWdlPXdhdmVsZXNzb25zY29udGludWVkcDMm Y29tcGFyZT0xJm9sZHZlcj03Jm5ld3Zlcj04CgoKKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKVGhlIGNoYW5nZXMgaW4gdGhpcyB2ZXJz aW9uIGZvbGxvdyBiZWxvdywgZm9sbG93ZWQgYWZ0ZXIgYnkgdGhlIGN1cnJlbnQgZnVsbCBwYWdl IHRleHQuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCgoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiAxOS0yMiBjaGFuZ2VkIHRvICtMaW5lczogMTktMjMg QEAKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSsKSWYgdGhlIHByZW5leCBjb250YWlucyAnJ25hIGt1JycsIGl0J3MgcHJldHR5IHN0cmFp Z2h0IGZvcndhcmQ6IFRoZSBlbnRpcmUgYnJpZGkgaXMgbmVnYXRlZCwganVzdCBhcyBpZiB0aGUg YnJpZGkgaXRzZWxmIGJlZ2FuIHdpdGggJyduYSBrdScnLgpTbyBob3cgbG9uZyBkb2VzIGEgcHJl bmV4IGxhc3Q/IEl0IGxhc3RzIHVudGlsIHRoZSBmb2xsb3dpbmcgYnJpZGkgaXMgdGVybWluYXRl ZC4gSWYgdGhhdCBpcyBub3QgZGVzaXJlZCwgdGhlcmUgYXJlIHR3byB3YXlzIHRvIG1ha2UgaXQg YXBwbHkgdG8gc2V2ZXJhbCBicmlkaTogT25lIGlzIHRvIHB1dCBzb21lIGtpbmQgb2YgY29ubmVj dGl2ZSBhZnRlciB0aGUgJycuaScnIHNlcGFyYXRpbmcgdGhlIGJyaWRpLCBhbmQgYW5vdGhlciBt ZXRob2QgaXMgdG8gc2ltcGx5IGluY2x1ZGUgYWxsIG9mIHRoZSB0ZXh0IGluICcndHUnZScnIC4u LiAnJ3R1J3UnJy1icmFja2V0cy4gVGhlc2UgYnJhY2tldHMgd29yayBwcmV0dHkgbXVjaCBieSBn bHVpbmcgYWxsIHRoZSBicmlkaSB0b2dldGhlciBhbmQgbWFrZXMgYWxsIHNvcnRzIG9mIGNvbnN0 cnVjdCBhcHBseSB0byBzZXZlcmFsIGJyaWRpLgorIApOb3cgdGhhdCB3ZSBjb3ZlcmVkICcnem8n dScnLCB0aGUgZmlyc3QgImxvZ2ljYWwiIHdvcmRzIHdlIGNhbiB1c2UgaXQgd2l0aCBhcmUgdGhl c2U6Cl9fJydkYScnX18gbG9naWNhbGx5IHF1YW50aWZpZWQgZXhpc3RlbnRpYWwgc3Vta2EnaSAx CgorLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKwpAQCAtTGluZXM6IDI2LTI5IGNoYW5nZWQgdG8gK0xpbmVzOiAyNy0zMSBAQAorLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpUaGUg d29yZHMgJydkYScnLCAnJ2RlJycgYW5kICcnZGknJyBjYW4gcmVmZXIgdG8gbGl0ZXJhbGx5IGFu eSBzdW10aSwgd2hpY2ggbWFrZXMgdGhlbSBraW5kIG9mIHVzZWxlc3MgdW5sZXNzIHJlc3RyaWN0 ZWQgaW4gc29tZSB3YXkuIFRoZSBmaXJzdCBhbmQgZm9yZW1vc3Qgd2F5IHRvIHJlc3RyaWN0IHRo ZW0gaXMgdG8gcXVhbnRpZnkgdGhlbTogVGhleSBhcmUgbm90IGNhbGxlZCAibG9naWNhbGx5IHF1 YW50aWZpZWQgZXhpc3RlbnRpYWwgc3Vta2EnaSIgZm9yIG5vdGhpbmcuIFRoZXkgYXJlIHN1bWth J2ksIHRoZXkgYXJlIG1vc3QgdXNlZnVsIHdoZW4gcXVhbnRpZmllZCwgYW5kIHRoZXkgYXJlIGV4 aXN0ZW50aWFsLiBXaGF0IGRvZXMgaXQgbWVhbiwgYmVpbmcgImV4aXN0ZW50aWFsIj8gSXQgbWVh bnMgdGhhdCBpZiB0aGV5IGFyZSB1c2VkLCB0aGF0IGltcGxpZXMgdGhhdCB0aGV5IGFjdHVhbGx5 IHJlZmVyIHRvIHNvbWV0aGluZyB3aGljaCBleGlzdHMuIEFuIGV4YW1wbGU6ClRoZSBzdGF0ZW1l bnQgJydwYSBkYSB6byd1IGRhIGdlcmt1JycgaGFzICcncGEgZGEnJyBpbiB0aGUgcHJlbmV4LCB3 aGljaCBtZWFucyAiQ29uY2VybmluZyBvbmUgZXhpc3RpbmcgdGhpbmc6IiwgYW5kIHRoZW4gJydk YScnLCBub3cgZGVmaW5lZCwgaXMgdXNlZCBpbiB0aGUgYnJpZGkgJydkYSBnZXJrdScnLiBUcmFu c2xhdGVkIHRvIEVuZ2xpc2gsIHRoaXMgbWVhbnM6ICJUaGVyZSBleGlzdHMgb25lIHRoaW5nIHdo aWNoIGlzIGEgZG9nIi4gVGhpcyBpcyBvYnZpb3VzbHkgZmFsc2UsIHRoZXJlIGFyZSBhcm91bmQg NDAwLDAwMCwwMDAgb2YgdGhlbSBpbiB0aGUgd29ybGQuIElmICcnZGEnJyBhbmQgaXRzIHNpc3Rl cnMgYXJlIG5vdCBxdWFudGlmaWVkLCB0aGUgbnVtYmVyICcnc3UnbycnIGlzIHRoZSBkZWZhdWx0 LiBUaHVzICcnZGEgem8ndSBkYSBnZXJrdScnIG1lYW5zICJUaGVyZSBleGlzdCBhdCBsZWFzdCBv bmUgdGhpbmcgd2hpY2ggaXMgYSBkb2ciLCB3aGljaCBpcyB0cnVlLiBOb3RpY2UgaGVyZSwgdGhh dCBhbnkgcXVhbnRpZmljYXRpb24gbXVzdCBiZSBtb3JlIG9yIGxlc3MgZXhhY3QgaW4gb3JkZXIg dG8gYmUgdHJ1ZTogT2YgY291cnNlIG9uZSBkb2cgZXhpc3RzLCBidXQgaW4gTG9qYmFuLCAnJ3Bh IGRhIHpvJ3UgZGEgZ2Vya3UnJyBtZWFucyBub3Qgb25seSB0aGF0IGRvZXMgb25lIGRvZyBleGlz dHMsIGJ1dCBhbHNvIHRoYXQgbm8gbW9yZSB0aGFuIG9uZSBkb2VzLiAKKyAKVGhlcmUgYXJlIGEg ZmV3IHNwZWNpZmljIHJ1bGVzIHRvIHRoZXNlIGV4aXN0ZW50aWFsIHN1bWthJ2k6Ci0gSWYgdGhl IHF1YW50aWZpZXIgJydybycnIGlzIHVzZWQgYmVmb3JlICcnZGEnJywgaXQgaW5zdGVhZCByZWZl cnMgdG8gImFsbCB3aGljaCBleGlzdHMiLgoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiAzNC0zNyBjaGFuZ2VkIHRv ICtMaW5lczogMzYtNDAgQEAKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSsKJydybyBkaSBwb2kgcmVtbmEgem8ndSBiaXJrYSBkaScnID0g IkNvbmNlcm5pbmcgYWxsIFggdGhhdCBleGlzdHMsIHdoaWNoIGlzIGh1bWFuOiBYIGhhcyBvbmUg b3IgbW9yZSBhcm1zLiIgb3IgIkFsbCBodW1hbnMgaGF2ZSBhcm1zIiwgd2hpY2ggaXMgdHJ1ZSwg YXQgbGVhc3Qgd2hlbiBzcGVha2luZyBpbiBhIHBvdGVudGlhbCwgdGltZWxlc3Mgc2Vuc2UuCl9f JydiaXJrYScnX18geDEgaXMgYW4gYXJtIG9mIHgyCisgCldoZW4gcmVzdHJpY3RpbmcgY2xhaW1z IHVzaW5nIHRoaXMga2luZCBvZiBsb2dpY2FsICJleGlzdGVudGlhbCIgdmFyaWFibGUsIGl0J3Mg dmVyeSBpbXBvcnRhbnQgdG8gcmVtZW1iZXIgdGhhdCB1bmxlc3MgdGhlcmUgaXMgYW4gZXhwbGlj aXQgJydubycnIGFzIGEgcXVhbnRpZmllciwgdGhlc2Uga2luZCBvZiBzdGF0ZW1lbnRzIGFsd2F5 cyBpbXBseSB0aGF0IHRoZXJlIF9fYWN0dWFsbHkgZXhpc3RzX18gc29tZXRoaW5nIHdoaWNoIGNh biBiZSByZWZlcnJlZCB0byBieSAnJ2RhJycuIFRoZXJlZm9yZSwgYW55IGtpbmQgb2Ygbm9uLW5l Z2F0ZWQgc3RhdGVtZW50IHdoZXJlICcnZGEnJyBwb2ludHMgdG8gc29tZXRoaW5nIHdoaWNoIGRv ZXMgbm90IGV4aXN0IGlzIGZhbHNlLCBhcyBpbiB0aGlzIGV4YW1wbGU6ICcncm8gZGEgcG9pIHBh dnlzZWxqaXJuYSB6byd1IGRhIHNlIGppcm5hJycgLSAiQWxsIHVuaWNvcm5zIGhhdmUgaG9ybnMi LiBUaGlzIGlzIHdyb25nIGJlY2F1c2UsIHNpbmNlICcnZGEnJyBpcyBleGlzdGVuc2lhbCwgaXQg YWxzbyBtZWFucyB0aGF0IHRoZXJlIG11c3QgZXhpc3QgYXQgbGVhc3Qgb25lIHVuaWNvcm4uCklu dGVyZXN0aW5nbHksIHdoZW4gdXNpbmcgYSByZWxhdGl2ZSBjbGF1c2UsIHRoZSB2YXJpYWJsZSBp cyBiZWluZyByZXN0cmljdGVkIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB5b3UgdXNlICcncG9pJycg b3IgJydub2knJy4gVGhpcyBpcyBiZWNhdXNlICcncmUgZGEgbm9pIGdlcmt1Jycgc3RpbGwgb25s eSBjYW4gcmVmZXIgdG8gdHdvIHRoaW5ncyB3aGljaCBhcmUgaHVtYW5zLiBUaGVyZWZvcmUsICcn bm9pJycgbWFrZXMgbGl0dGxlIHNlbnNlIHdpdGggJydkYScnLycnZGUnJy8nJ2RpJycuIEFueSBj bGF1c2UgaXMgYWx3YXlzIHJlc3RyaWN0aXZlLCB1bmxlc3MgaXQncyByZWFsbHkgc3R1cGlkIGFu ZCBvYnZpb3VzIGxpa2UgJydkZSBub2kgZ2Vya3UgY3UgZ2Vya3UnJy4KCistKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBAIC1MaW5lczog NDMtNDYgY2hhbmdlZCB0byArTGluZXM6IDQ2LTUwIEBACistKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rClRoZXNlIHdvcmsgcHJldHR5IG11 Y2ggdGhlIHNhbWUgd2F5IGFzIHRoZSBvdGhlciB0aHJlZSwgYnV0IHRoZXJlIGFyZSBhIGZldyBw b2ludHMgd2hpY2ggYXJlIGltcG9ydGFudCB0byBtZW50aW9uOgpTaW5jZSBvbmx5IHRlcm1zIGNh biBnbyBpbiB0aGUgcHJlbmV4LCB0aGVzZSBicmlrYSdpIG5lZWQgdG8gaGF2ZSBhIHF1YW50aWZp ZXIgaW4gb3JkZXIgdG8gbWFrZSB0aGVtIGludG8gc3VtdGkuIFdoZW4gcXVhbnRpZmllZCBpbiB0 aGUgcHJlbmV4LCBob3dldmVyLCB0aGUgcXVhbnRpZmllciB3b3JrcyB2ZXJ5IGRpZmZlcmVudCBm cm9tIHF1YW50aWZpZXJzIHdpdGggbm9ybWFsIHNlbGJyaTogSW5zdGVhZCBvZiBxdWFudGlmeWlu ZyB0aGUgYW1vdW50IG9mIHRoaW5ncyB3aGljaCBmaXRzIHRoZSB4MSBvZiB0aGUgc2VsYnJpIHZh cmlhYmxlLCBpdCBkaXJlY3RseSBxdWFudGlmaWVzIHRoZSBhbW91bnQgb2Ygc2VsYnJpIHdoaWNo IGFwcGxpZXMuIEFnYWluLCB0aGUgZGVmYXVsdCBxdWFudGlmaWVyIGlzICcnc28ndScnLiBUaHVz LCBpbnN0ZWFkIG9mICcncmUgYnUnYSB6byd1JycgbWVhbmluZyAiQ29uY2VybmluZyB0d28gdGhp bmdzIHdoaWNoIGlzIGluIHJlbGF0aW9uc2hpcCBYOiIsIGl0IG1lYW5zICJDb25jZXJuaW5nIHR3 byByZWxhdGlvbnNoaXBzIFg6IgorIApJdCdzIHByb2JhYmx5IGdvb2QgdG8gc2VlIGFuIGV4YW1w bGUgb2YgJydidSdhJycgcHV0IHRvIHByYWN0aWNlOgonJ3JvIGRhIGJ1J2EgbGEgLmJhYi4nJyA9 ICJDb25zaWRlcmluZyBhbGwgWCB3aGljaCBleGlzdHM6IFggaXMgaW4gYXQgbGVhc3Qgb25lIHJl bGF0aW9uc2hpcCB3aXRoIEJvYiIgPSAiRXZlcnl0aGluZyBpcyByZWxhdGVkIHRvIEJvYiBpbiBh dCBsZWFzdCBvbmUgd2F5LiIuIE5vdGljZSBhZ2FpbiB0aGUgb3JkZXIgbWF0dGVyczogJydzdSdv IGJ1J2Egcm8gZGEgem8ndSBkYSBidSdhIGxhIC5iYWIuJycgbWVhbnM6ICJUaGVyZSBpcyBhdCBs ZWFzdCBvbmUgcmVsYXRpb25zaGlwIHN1Y2ggdGhhdCBldmVyeXRoaW5nIHRoYXQgZXhpc3RzIGlz IGluIHRoYXQgcmVsYXRpb25zaGlwIHdpdGggQm9iIi4gVGhlIGZpcnN0IHN0YXRlbWVudCBpcyB0 cnVlIC0gZm9yIGFueSBvbmUgdGhpbmcsIG9uZSBjYW4gaW5kZWVkIG1ha2UgdXAgc29tZSBzZWxi cmkgd2hpY2ggcmVsYXRlcyBhbnkgZ3V5IGNhbGxlZCBCb2IgYW5kIGl0LiBCdXQgSSdtIG5vdCBz dXJlIHRoZSBsYXR0ZXIgaXMgdHJ1ZSAtIHRoYXQgb25lIGNhbiBtYWtlIGEgc2VsYnJpIHdoaWNo IGNhbiByZWxhdGUgYW55dGhpbmcsIG5vIG1hdHRlciB3aGF0IGl0IGlzLCBhbmQgQm9iLgoKKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsK QEAgLUxpbmVzOiA0OS0xMzggY2hhbmdlZCB0byArTGluZXM6IDUzLTI1MiBAQAorLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpZb3UgY2Fu J3QgcXVhbnRpZnkgdGhlIHNlbGJyaSB2YXJpYWJsZXMgaW4gdGhlIGJyaWRpIGl0c2VsZiwgdGhv dWdoLiBUaGVuIGl0IHdpbGwgYWN0IGFzIGEgc3VtdGk6ICcnbWkgY2knaSBidSdhIGRvJycgaXMg bm90IGEgYnJpZGkuIFRoZXJlIGFyZSBzb21lIHNpdHVhdGlvbiB3aGVyZSB0aGlzIHdpbGwgYmVj b21lIHByb2JsZW1hdGljIC0gbGVzc29uIHR3ZW50eS1uaW5lIHdpbGwgdGVhY2ggaG93IHRvIG92 ZXJjb21lIHRob3NlIHByb2JsZW1zLgoKLSAhIUxvamJhbiBMZXNzb25zIC0gTGVzc29uIHR3ZW50 eS1laWdodCAoc2VtYW50aWNzIG9mIHNpbXBsZSBhYnN0cmFjdGlvbnMpPGJyIC8+SSBmZWVsIGl0 IGlzIG5lY2Vzc2FyeSB0byByZXBlYXQgcGFydCBvZiB0aGUgZGlzY2xhaW1lciBmcm9tIHRoZSBi ZWdpbm5pbmcgb2YgdGhpcyBwYXJ0IG9mIHRoZSBXYXZlbGVzc29uc2NvbnRpbnVlZDogV2hhdCB5 b3UgZmluZCBpbiB0aGlzIGxlc3NvbiBhbmQgdGhlIGZvbGxvd2luZyBpcyBub3QgZ29sZGVuIEJQ RkstZGVmaW5pdGlvbnMsIGJ1dCBvbmUgaW50ZXJwcmV0YXRpb24uIEkgaGF2ZSBwaWVjZWQgdGhl IGxlc3NvbnMgdG9nZXRoZXIgZnJvbSB0aGUgYmVzdCBhbmQgbW9zdCBjb25zaXN0ZW50IHRoZW9y aWVzIG9uIExvamJhbiwgYnV0IG1pbmQgdGhhdCB3aGF0IGlzIHRhdWdodCBpbiBoZXJlIG1pZ2h0 IG5vdCBiZSB3aGF0IGFsbCBsb2piYW5pc3RzIGFncmVlIG9uLjxiciAvPldoaWxlIHlvdSBoYXZl IGJlZW4gdGF1Z2h0IGFib3V0IGFic3RyYWN0aW9ucyB0d2VudHktdHdvIGxlc3NvbnMgYWdvLCB0 aGVyZSBhcmUgc3RpbGwgbWFueSB0eXBlcyBvZiBhYnN0cmFjdGlvbiB3aXRoIHdoaWNoIHlvdSBh cmUgdW5mYW1pbGlhciwgYW5kIHNvbWUgb2YgdGhlIG9uZXMgeW91IGFyZSBmYW1pbGlhciB3aXRo IGhhdmUgbm90IGJlZW4gcHJvcGVybHkgZGVmaW5lZC48YnIgLz5UaGUgZmlyc3QgYW5kIG1vc3Qg YmFzaWMgYWJzdHJhY3RvciBpcyAnJ3N1dScnLCB3aGljaCB5b3UgYWxyZWFkeSBrbm93LjxiciAv PllvdSBtaWdodCByZW1lbWJlciBmcm9tIGxlc3NvbiBzaXggdGhhdCAnJ3N1J3UnJyBoYWQgYSBw bGFjZSBzdHJ1Y3R1cmUgd2l0aCB0d28gc3VtdGkgcGxhY2VzLiBUaGUgc2Vjb25kIHN1bXRpIHBs YWNlIG9mICcnc3UndScnIG1ha2VzIHRoZSB3b3JkIHZlcnNhdGlsZSwgYXMgdGhlIHgyIGNhbiBi ZSB1c2VkIHRvIHNwZWNpZnkgaG93IHRoZSBhYnN0cmFjdGlvbiBzaG91bGQgYmUgY29uc2lkZXJl ZC48YnIgLz5UaGUgRW5nbGlzaCBwaHJhc2UgdGhhdCBJIGxvdmUgeW91IGlzIGRlZmluaXRlbHkg YSBzdW10aSwgc2luY2UgaXRzIG1lYW50IHRvIGZ1bmN0aW9uIGFzIGEgc3ViamVjdCBvciBvYmpl Y3QgaW4gYSBzZW50ZW5jZS4gSXRzIGFsc28gY2xlYXJseSBtYWRlIGZyb20gYW4gYWJzdHJhY3Rp b24uIEl0IGNhbiB0aGVyZWZvcmUgYmUgdHJhbnNsYXRlZCAnJ2xvIHN1dSBtaSBkbyBwcmFtaScn LiBXaXRob3V0IHRoZSBjb250ZXh0IG9mIHRoZSBFbmdsaXNoIHNlbnRlbmNlLCB0aG91Z2gsIGl0 cyBoYXJkIHRvIGd1ZXNzIHdoYXQga2luZCBvZiBhYnN0cmFjdGlvbiB3YXMgbWVhbnQuIEkgd2ls bCBkaWUgaGFwcHkgYnkgdGhlIHRpbWUgdGhhdCBJIGxvdmUgeW91LiB0cmVhdHMgdGhlIGFic3Ry YWN0aW9uIGFzIGFuIGV2ZW50IGhhcHBlbmluZyBpbiB0aW1lLiBUaGUgdHJ1dGggaXMgdGhhdCBJ IGxvdmUgeW91LiB0cmVhdHMgdGhlIGFic3RyYWN0aW9uIGxpa2UgYSBicmlkaSwgd2hpY2ggY2Fu IGJlIGNvbnNpZGVyZWQgdHJ1ZSBvciBmYWxzZS4gJnF1b3Q7WW91IGRvbid0IGtub3cgaG93IG11 Y2ggSSBsb3ZlIHlvdSZxdW90OyB0cmVhdHMgdGhlIChhbG1vc3Qgc2FtZSkgYWJzdHJhY3Rpb24g YXMgYW4gYW1vdW50LiBVc2luZyB0aGUgc2Vjb25kIHN1bXRpIHBsYWNlIG9mICcnc3V1JycsIHRo ZXNlIGNhbiBiZSBleHBsaWNpdGx5IGRpc3Rpbmd1aXNoZWQgYmV0d2Vlbjo8YnIgLz4nJ2xvIHN1 dSBtaSBkbyBwcmFtaSBrZWkgYmUgbG8gZmFzbnUnJyBpcyBhbiBldmVudC48YnIgLz4nJ2xvIHN1 dSBtaSBkbyBwcmFtaSBrZWkgYmUgbG8gYnJpZGknJyBpcyBhIGJyaWRpLjxiciAvPicnbG8gc3V1 IG1pIGRvIHByYW1pIGtlaSBiZSBsbyBrbGFuaScnIGlzIGFuIGFtb3VudC48YnIgLz5Vc2luZyAn J3N1dScnIHRoaXMgd2F5LCB0aGUgc2VtYW50aWMsIHRob3VnaCBub3QgZ3JhbW1hdGljYWwsIHJh bmdlIG9mIGFsbCBhYnN0cmFjdG9ycyBjYW4gYmUgY292ZXJlZC4gTW9yZSB1c3VhbGx5LCB0aG91 Z2gsIG90aGVyIGFic3RyYWN0b3JzIGFyZSB1c2VkLiAnJ251JycsIHdoaWNoIHlvdSBhbHNvIGtu b3csIHRyZWF0cyB0aGUgYWJzdHJhY3Rpb24gYXMgYW4gZXZlbnQuPGJyIC8+X18nJ251JydfXyB4 MSBpcyBhbiBldmVudCBvZiBCUklESTxiciAvPlRoZXJlIGFyZSBtYW55IHdheXMgdG8gdmlldyBh biBldmVudCwgYW5kIHNvIHRoZXJlIGFyZSBmb3VyIG90aGVyIGFic3RyYWN0b3JzIHdob3NlIHNl bWFudGljcyBhcmUgYWxsIGNvdmVyZWQgYnkgJydudScnLCBidXQgbW9yZSBzcGVjaWZpYy48YnIg Lz5fXycnbXVlJydfXyB4MSBpcyBhIHBvaW50LWxpa2UgZXZlbnQgb2YgQlJJREkgaGFwcGVuaW5n PGJyIC8+X18nJ3phaScnX18geDEgaXMgYSBzdGF0ZSBvZiBCUklESSBiZWluZyB0cnVlPGJyIC8+ X18nJ3B1dScnX18geDEgaXMgYSBwcm9jZXNzIG9mIEJSSURJIHVuZm9sZGluZyB0aHJvdWdoIHN0 YWdlcyB4MjxiciAvPl9fJyd6dW8nJ19fIHgxIGlzIGFuIGFjdGl2aXR5IG9mIEJSSURJIGNvbnNp c3Rpbmcgb2YgdGhlIHJlcGVhdGVkIGV2ZW50IG9mIHgyCisgISFMb2piYW4gTGVzc29ucyAtIExl c3NvbiB0d2VudHktZWlnaHQgKHR5cGVzKTxiciAvPlRoaXMgbGVzc29uIGFsb25nIHdpdGggdGhl IGZvbGxvd2luZyB0aHJlZSBsZXNzb25zIHdpbGwgYmUgb24gc2VtYW50aWNzIC0gaG93IHRvIGlu dGVycHJldCB0aGUgbWVhbmluZyBvZiBjZXJ0YWluIGNvbnN0cnVjdHMuIFRoaXMgbGVzc29uIGlz IG9uIHRoZSBtZWFuaW5nIG9mIGRpZmZlcmVudCB0eXBlcyBvZiBzdW10aSwgYW5kIHdpbGwgZ2V0 IHBoaWxvc29waGljYWwgYW5kIGEgYml0IGhhenkuIFRoZSBmb2xsb3dpbmcgdHdvIHdpbGwgYmUg b24gYWJzdHJhY3Rpb25zLCB3aGljaCwgZXZlbiB0aG91Z2ggeW91IGFscmVhZHkgYmVjYW1lIGZh bWlsaWFyIHdpdGggdGhlbSB0d2VudHktdHdvIGxlc3NvbnMgYWdvLCB3aWxsIGJlY29tZSBtb3Jl IHRlY2huaWNhbCBhcyBJIGF0dGVtcHQgdG8gZXhwbGFpbiB0aGVpciBzZW1hbnRpYyBhbmQgZ3Jh bW1hdGljYWwgcHJvcGVydGllcy48YnIgLz48YnIgLz5UZWFjaGluZyAoYW5kIGxlYXJuaW5nKSBz ZW1hbnRpY3MgaXMgbXVjaCBtb3JlIHRyaWNreSB0aGFuIHRlYWNoaW5nIGdyYW1tYXIsIGVzcGVj aWFsbHkgaW4gTG9qYmFuLCB3aGVyZSBncmFtbWFyIGlzIGJsYWNrLW9yLXdoaXRlLCBidXQgc2Vt YW50aWNzIGlzbid0LiBUaGVyZWZvcmUsIEkgZmluZCBpdCBuZWNlc3NhcnkgdG8gcmVwZWF0IHRo ZSBkaXNjbGFpbWVyIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGhpcmQgcGFydCBvZiBXYXZl bGVzc29uc2NvbnRpbnVlZDogVGhlIGZvbGxvd2luZyBpcyBub3Qgb2ZmaWNpYWwsIGJ1dCByYXRo ZXIgYW4gKGVkdWNhdGVkKSBvcGluaW9uIG9uIHRoZSBsYW5ndWFnZS4gPGJyIC8+PGJyIC8+V2hl cmUgYmFkIGdyYW1tYXIgaXMgZWFzeSB0byBzcG90IGluIExvamJhbiwgaW4gZmFjdCBpdCdzIHVu YW1iaWd1b3VzbHkgY29ycmVjdCBvciBub3QsIHNheWluZyB0aGF0IGEganVmcmEgaXMgc2VtYW50 aWNhbGx5IHdyb25nIGlzIHRoZSBzYW1lIGFzIHNheWluZyB0aGF0IHRoZSBzcGVha2VyIGlzIHVz aW5nIExvamJhbiB0byB0aGluayB3cm9uZ2x5IGFib3V0IHRoZSB3b3JsZC4gSXQncyBub3Qgc2F5 aW5nICZxdW90O1lvdSBjYW4ndCBzYXkgWCZxdW90OyBhcyBtdWNoIGFzICZxdW90O1lvdSBjYW4n dCBpbnRlcnByZXQgWCBpbiB0aGlzIHdheSwgeW91IHNob3VsZCBpbnRlcnByZXQgaXQgdGhpcyB3 YXkmcXVvdDsuIFBsYWNpbmcgdGhlc2UgcmVzdHJpY3Rpb25zIG9uIGNvbXBvc2luZyBhbmQgdW5k ZXJzdGFuZGluZyBpcyBhIHNsaXBwZXJ5IHNsb3BlIGxlYWRpbmcgdG8gcmVzdHJpY3Rpb25zIG9u IGNyZWF0aXZpdHksIGFuZCBpbiB0aGUgd29yc3QgY2FzZSwgcHJlc3VwcG9zaW5nIG9mIGEgY2Vy dGFpbiBtZXRhcGh5c2ljYWwgdmlld3BvaW50IGFuZCBleGNsdWRpbmcgb3RoZXJzLjxiciAvPjxi ciAvPlRoZW4gd2h5IGluY2x1ZGUgc2VtYW50aWMgc3RhbmRhcmRzIGluIGEgdGV4dGJvb2s/IFNo b3VsZG4ndCBhbnkgc3BlYWtlciBiZSBmcmVlIHRvIHNheSBhbnl0aGluZyBhbmQgYW55IGxpc3Rl bmVyIGJlIGZyZWUgdG8gbGV0IHRoYXQgc3BlZWNoIG1lYW4gd2hhdGV2ZXIgdGhleSB3YW50Pzxi ciAvPlRoaXMgaXMgYSBtYXR0ZXIgb2YgbWVhc3VyZS4gR2l2ZW4gdGhhdCBleHRyZW1lLCBpZiBu byBzZW1hbnRpYyBzdGFuZGFyZHMgd2VyZSBzZXQsIGFueXRoaW5nIGNvdWxkIG1lYW4gZXZlcnl0 aGluZywgYW5kIGFsbCBjb21tdW5pY2F0aW9uIHdvdWxkIGJlIG1lYW5pbmdsZXNzLiBJbiBhbnkg bGFuZ3VhZ2Ugd2hpY2ggYWltcyB0byBmYWNpbGl0YXRlIGNvbW11bmljYXRpb24sIG9uZSBtdXN0 IGJlIGFibGUgdG8gYmUgYWJsZSB0byBleHByZXNzIG9uZXNlbGYgaW4gYSB3YXkgd2hpY2ggY2Fu IGJlIHRydXN0ZWQgdG8gYmUgaW50ZXJwcmV0ZWQgaW4gdGhlIGRlc2lyZWQgd2F5LiBTZW1hbnRp YyBydWxlcyBvZiBMb2piYW4gZG9lcyBub3QgZXhpc3QgaW4gb3JkZXIgdG8gcHJldmVudCBwZW9w bGUgZnJvbSBzYXlpbmcgQS4gVGhlIGV4aXN0IHRvIHByZXZlbnQgcGVvcGxlIGZyb20gc2F5aW5n IEIgYW5kIGhhdmUgcGVvcGxlIHRoaW5rIHlvdSBtZWFudCBBLjxiciAvPjxiciAvPlRoaXMgbGVz c29uIGlzIG9uIHR5cGVzLiBUaGUgd29yZCBfX3R5cGVfXywgaW5mb3JtYWxseSB0cmFuc2xhdGVk IHRvICcna2xlc2knJywgaXMgdXNlZCBieSBMb2piYW5pc3RzIHRvIGRlc2NyaWJlIHRoZSBleGlz dGVuc2lhbCBuYXR1cmUgb2YgdGhlIHRoaW5ncyBzdW10aSBkZXNjcmliZS4gVGhpcyBuYXR1cmUg aXMsIG11c3QgYmUsIHRoZSBzYW1lIGFzIHRoZSBuYXR1cmUgb2YgdGhlIHRoaW5ncyBkZXNjcmli ZWQgYnkgb3RoZXIgbGFuZ3VhZ2VzIHN1Y2ggYXMgRW5nbGlzaC4gSG93ZXZlciwgaW4gTG9qYmFu LCB0aGUgZGlmZmVyZW50IHdheXMgb2YgbWFraW5nIHN1bXRpIGRlbm90ZXMgd2hpY2ggdHlwZSBh IHN1bXRpIGJlbG9uZ3MgdG8sIHNvIHdoaWxlIHRoZSBleGFjdCBuYXR1cmUgb2Ygc3VtdGkgY2Fu IGJlIGlnbm9yZWQgaW4gRW5nbGlzaCwgTG9qYmFuaXN0cyBoYXZlIHRvIGRlYWwgd2l0aCB0aGVt LjxiciAvPjxiciAvPldoZW4gc3BlYWtpbmcgb2YgdHlwZXMsIExvamJhbmlzdHMgb2Z0ZW4gbWVu dGlvbiB3aGF0IHR5cGUgYSBzdW10aSBfX3JlYWxseSBpc19fLCBidXQgd2hlbiBzdGFydGluZyBm cm9tIHRoZSB0b3AsIHdlIGhhdmUgdG8gcmVtZW1iZXIgdGhhdCB0aGlzIGlzIG5vdCBwaGlsb3Nv cGhpY2FsbHkgd2VsbCBncm91bmRlZC4gVGFraW5nIGEgbWF0ZXJpYWxpc3RpYyB2aWV3cG9pbnQs IHRoZSBuYXR1cmFsIHdvcmxkIG9mIHBhcnRpY2xlcyBhbmQgd2F2ZXMgZG9lcyBub3QgY29ycmVz cG9uZCB3ZWxsIHdpdGggaHVtYW4gdW5kZXJzdGFuZGluZyBvZiBzYXksIGhhdHJlZCwgd2hpY2gg YXJlIG5vdCBkZXRlcm1pbmVkIGJ5IGFueSBzcGVjaWZpYyBwYXJ0aWNsZXMsIG5vdCBhbnkgc3Bl Y2lmaWMgYnJhaW4gYWN0aXZpdHksIGJ1dCBhIHB1cmVseSBhYnN0cmFjdCBjb25jZXB0LiBTaW1p bGFybHksIGluIGFuIGV4dHJlbWUgaW5kdWN0aW9uaXN0IHZpZXdwb2ludCwgc3VjaCBhcyB0aGF0 IHRha2VuIGJ5IEh1bWUsIGFsbCB3ZSBodW1hbnMgZXhwZXJpZW5jZSBhcmUgc3ViamVjdGl2ZSBp bXByZXNzaW9ucyBvdmVyIHRpbWUgLSBhIGxvbmcgc3RyaW5nIG9mIGV2ZW50cywgb3IsIHNvbWUg cGVvcGxlIGFyZ3VyZSwgZXZlbiBhIGJ1bmNoIG9mIHF1YWxpYSAoVGhpcyBpcyBfX2dyZWVuX18u IFRoaXMgaXMgX19jcmlzcHlfXy4gVGhpcyBpcyBfX3JvdW5kX18uIFRoaXMgaXMgX190YXN0eV9f LiA9Jmd0OyAmcXVvdDtUaGlzIGlzIGFuIGFwcGxlJnF1b3Q7LikgVGhpcywgaG93ZXZlciwgZG9l cyBub3QgY29ycmVzcG9uZCB3ZWxsIHRvIGh1bWFuIHVuZGVyc3RhbmRpbmcgb2Ygc2F5LCBhIGNh dCwgd2hvc2UgZXhpc3RhbmNlIG11c3QgYmUgcHJlc3VtZWQgdG8gY29udGludWUgZXZlbiB3aGVu IGl0IGludm9rZXMgbm8gcXVhbGlhIGluIGh1bWFucywgYW5kIHdob3NlIHF1YWxpYSB2YXJ5IGFt b25nIGRpZmZlcmVudCBjYXRzLCBhbmQgd2hvc2UgZGVhdGggc21vb3RobHkgc3RyaXBzIGl0IG9m IGl0cyBjYXRsaWtlIHF1YWxpYS4gPGJyIC8+PGJyIC8+SW4gb3RoZXIgd29yZHMsIHdoaWxlIG9u ZSBjYW4gdGFrZSBwaGlsb3NvcGhpY2FsbHkgY29uc2lzdGVudCB3b3JsZHZpZXdzIHdoZXJlIG9i amVjdHMgYW5kIGNvbmNlcHRzIGRvbid0IGV4aXN0LCBzdWNoIHdvcmxkdmlld3MgYXJlIHVuZnJ1 aXRmdWwgZm9yIGNvbmR1Y3RpbmcgaHVtYW4gYWZmYWlyczogSW4gb3VyIGxpdmVzLCB3ZSBzaW1w bHkgbmVlZCB0byByZWZlciB0byBvYmplY3RzLCBhbmQgcHJldGVuZCB0aGF0IHRoZXkgYWN0dWFs bHkgZXhpc3QgYXMgc3VjaC4gT25lIGZhbW91cyBzdG9yeSB0ZWxscyBvZiBhIHBoaWxvc29waGVy LCBTYW11ZWwgSm9obnNvbiwgd2hvLCBmcnVzdHJhdGVkIGFib3V0IHRoZSBwaGlsb3NvcGhpY2Fs IHNvdW5kbmVzcyBhbmQgdW4tcmVmdXRhYmlsaXR5IG9mIGEgZmVsbG93IHBoaWxvc29waGVyJ3Mg YmVsaWVmIHRoYXQgdGhlIHBoeXNpY2FsIHdvcmxkIGRvZXMgbm90IGV4aXN0LCBmdXJpb3VzbHkg a2lja3MgYSByb2NrIHllbGxpbmcgJnF1b3Q7SSByZWZ1dGUgaXQgX190aHVzIV9fJnF1b3Q7PGJy IC8+PGJyIC8+SW4gTG9qYmFuLCBtb3N0IHN1bXRpIGFyZSBtYWRlIGZyb20gc2VsYnJpIG9uZSB3 YXkgb3IgdGhlIG90aGVyLCB3aGljaCBtZWFucyB0aGF0IGF0IHRoZSBjb3JlIG9mIG1vc3Qgc3Vt dGkgbGllcyBhIHNlbGJyaSwgYW4gYWN0aW9uLCBzb21ldGhpbmcgd2hpY2ggc29tZXRoaW5nIF9f ZG9lc19fLiBUaGUgU3VuJ3Mgbm90IHVzdWFsbHkgcmVmZXJyZWQgdG8gYXMge2xhIHNvbHJpfSwg JnF1b3Q7VGhlIFN1biZxdW90OywgYnV0IG9mdGVuIHtsbyBzb2xyaX0sICZxdW90O1NvbWV0aGlu ZyB3aGljaCBpcyBzdW5uaW5nJnF1b3Q7LiBUaGVyZSBhcmUgbWFueSBjb25mdXNpbmcgcGhpbG9z b3BoaWNhbCBpbXBsaWNhdGlvbnMgb2YgdGhpczogQXMgc3RhdGVkIGJlZm9yZSwgaXQncyBzaGFr eSBhdCBiZXN0IHdoYXQgaXQgbWVhbnMgJnF1b3Q7dG8gY2F0JnF1b3Q7IGFuZCB3aGVuIHNvbWV0 aGluZyAmcXVvdDtzdG9wcyBjYXR0aW5nJnF1b3Q7LiBBIGZpY3Rpb25hbCBsYW5ndWFnZSB3aXRo IHNpbWlsYXIgcHJvcGVydGllcyBpcyBkZXNjcmliZXMgaW4gYSBuZWF0IHNob3J0IHN0b3J5LCAm cXVvdDtUbG4sIFVxYmFyLCBPcmJpcyBUZXJ0aXVzJnF1b3Q7ICh3aGVyZSAmcXVvdDtUaGUgb24g cm9zZSBvdmVyIHRoZSBvY2VhbiZxdW90OyBpcyBwaHJhc2VkIHVzaW5nIHNpbWlsYXIgdmVyYi9h ZHZlcmIgZGVyaXZlZCBub3VuczogJnF1b3Q7VXB3YXJkIGJlaGluZCB0aGUgb25zdHJlYW1pbmcg aXQgbW9vbmVkJnF1b3Q7KS4gSW4gdGhhdCBzaG9ydCBzdG9yeSwgdGhlIGxhbmd1YWdlIGlzIGFi b3V0IHRvIGxlYWQgdG8gdGhlIGNvbGxhcHNlIG9mIHNvY2lldHkgYmVjYXVzZSB0aGUgd29ybGQg dmlldyB3aGljaCBzdWNoIGEgbGFuZ3VhZ2UgaW1wbGllcyBpcyB1bmZpdCB0byBkZWFsaW5nIHdp dGggdGhlIHJlYWxpdGllcyBvZiBFYXJ0aC48YnIgLz48YnIgLz5UaGUgdGFrZSBob21lIHBvaW50 IG9mIGFsbCB0aGlzIGlzOiBQcmVjaXNlIGRlZmluaXRpb25zIG9mIHRoZSBkaWZmZXJlbnQgdHlw ZXMgb2Ygc3VtdGkgYXJlIGltcG9zc2libGUsIGJlY2F1c2UgdGhlc2UgY2NhdGVnb3JpZXMgZG8g bm90IGNvcnJlc3BvbmQgdG8gdGhlIHJlYWwgd29ybGQsIGJ1dCB3ZSBuZWVkIHRoZXNlIGNhdGVn b3JpZXMuPGJyIC8+VGhlcmUgbWF5IHBvc3NpYmx5IGJlIGFuIGluZmluaXRlIGFtb3VudHMgb2Yg dHlwZXMsIGJ1dCBoZXJlIEknbGwgZ28gdGhyb3VnaCB0aGUgb25lcyB3aGljaCBhcmUgZGVhbHQg d2l0aCBpbiBMb2piYW46PGJyIC8+PGJyIC8+TWF0ZXJpYWwgb2JqZWN0cyBhcmUgcGVyaGFwcyB0 aGUgZWFzaWVzdCB0byB1bmRlcnN0YW5kLCBldmVuIHRob3VnaCB0aGV5J3JlIGhhcmQgdG8gZGVm ZW5kIHBoaWxvc29waGljYWxseS4gVGhleSBhbHdheXMgaGF2ZSBhIHBsYWNlIGluIGJvdGggdGlt ZSBhbmQgc3BhY2UsIGJ1dCB0aGV5J3JlIGNvbnNpZGVyZWQgYmVpbmcgYSBjb25zdGFudCBleGlz dGluZyB0aHJvdWdoIHRpbWUuIFRoYXQgaXMsIG9iamVjdHMgYXJlIG5vdCBjb25zaWRlcmVkIHRl bXBvcmFsbHk6IEEgYmFuYW5hIGNhcnJpZXMgd2l0aCBpdCBpdHMgdW5jaGFuZ2luZyBiYW5hbmEt bmVzcyBldmVuIGFzIGl0IGFnZXMsIHVudGlsIGl0IGJlZ2lucyBicmVha2luZyBkb3duIGFuZCBz dG9wIGJlaW5nIGEgYmFuYW5hIGF0IGFsbC4gSWYgb25lIGNvdWxkIGZyZWV6ZSB0aW1lLCBhbGwg YmFuYW5hcyB3b3VsZCBzdGF5IGJhbmFuYXMgZHVyaW5nIHRoYXQgZnJvemVuIHRpbWUuPGJyIC8+ PGJyIC8+RXZlbnRzIGFyZSwgbGlrZSBvYmplY3RzLCBwbGFjZXMgaW4gc3BhY2UgYW5kIHRpbWUs IGJ1dCB0aGVzZSBhcmUgY29uc2lkZXJlZCB1bmZvbGRpbmcgb3ZlciB0aW1lOiBUaGUgdGVtcG9y YWwgYXNwZWN0IGlzIGFzIGltcG9ydGFudCBhcyB0aGUgc3BhY2lhbC4gQSBiYW5hbmEgY2FuIGJl IGNvbnNpZGVyZWQgYW4gZXZlbnQsIGJ1dCBpbiB0aGF0IGNhc2UsIHRoZSBldmVudCBvZiBiZWlu ZyBhIGJhbmFuYSBpcyByZWFsbHkgY29tcG9zZWQgb2YgdGhlIGNoYW5nZXMgdGhlIGJhbmFuYSB1 bmRlcmdvZXMgb3ZlciB0aW1lLCB3aGVyZWFzIHdoYXQgbWFrZXMgYSBiYW5hbmEgYW4gb2JqZWN0 IGlzIGFsbCB0aGF0LCB3aGljaCBkb2Vzbid0IGNoYW5nZS4gRnJlZXppbmcgdGltZSB3b3VsZCBh bHNvIGZyZWV6ZSB0aGUgZXZlbnQgb2YgYmVpbmcgYSBiYW5hbmEuPGJyIC8+PGJyIC8+RnVuY3Rp b25zIGFyZSBhIHRlcm0gdXNlZCBieSBhIGZldyBMb2piYW5pc3RzIHRvIGRlc2NyaWJlIGEgZ3Jv dXAgb2YgdHlwZXMuIEFsbCBmdW5jdGlvbnMgYXJlIGFic3RyYWN0IGNvbmNlcHRzIGFuZCBhcyBz dWNoIGRvZXNuJ3QgcmVhbGx5IGV4aXN0IGluIHRoZSByZWFsIHdvcmxkIG9uIHRoZWlyIG93bi4g SG93IHRoZSBzZW1hbnRpY3Mgb2YgZnVuY3Rpb25zIGludGVycGxheXMgd2l0aCB0aGVpciBncmFt bWFyIGlzIHRoZSBzdWJqZWN0IG9mIGxlc3NvbiB0aGlydHksIGhlcmUsIHdlIGZvY3VzIG9uIHRo ZWlyIHNlbWFudGljcyBhbG9uZS4gVGhlcmUgYXJlIGEgZmV3IHR5cGVzIG9mIGZ1bmN0aW9uczo8 YnIgLz48YnIgLz5TZWxicmkgYXJlIHNvbWV0aGluZyB5b3UncmUgYWxyZWFkeSB3ZWxsIGZhbWls aWFyIHdpdGguIEl0IGRlc2NyaWJlcyBhbiBhY3Qgb2YgZG9pbmcgb3IgYmVpbmcgaW4gaXRzZWxm LiAnJ2NyaW5vJycgdW5kZXJzdG9vZCBhcyBhIHNlbGJyaSAJbWVhbnMgJnF1b3Q7YmVpbmcgZ3Jl ZW4mcXVvdDssICcnZGFyeGknJyBhcyBhIHNlbGJyaSBtZWFucyAmcXVvdDt0byBoaXQmcXVvdDsu IEEgc2VsYnJpIGlzIGRldm9pZCBvZiB3aG8ncyBkb2luZyBvciBiZWluZyB0aGF0IHNlbGJyaSwg YW5kIGFzIHN1Y2gsIHRoZXkncmUgZGl2b3JjZWQgZnJvbSBhbnkgcGFydGljdWxhciBpbnN0YW5j ZSBvZiBiZWluZyBncmVlbiBvciBoaXR0aW5nLCBhbmQgY2FuIGFzIHN1Y2ggYmUgdW5kZXJzdG9v ZCBhcyBhIGtpbmQgb2YgZ2VuZXJhbGl6ZWQgZXZlbnRzLiBUaGV5J3JlIHVzZWQgZm9yIHNlbnRl bmNlcyB3aGVyZSBubyBwYXJ0aWN1bGFyIGluc3RhbmNlIG9mIHRoYXQgc2VsYnJpIGJlaW5nIGFw cGxpZXMgY29tZXMgdG8gbWluZC4gRm9yIGluc3RhbmNlLCBpZiBJJ20gbG9va2luZyBmb3J3YXJk IHRvIG15IHdlZGRpbmcgbmV4dCB3ZWRuZXNkYXksIEknbSB0aGlua2luZyBhYm91dCBzb21lIGV2 ZW50IHBsYWNlZCBpbiBzcGFjZSBhbmQgdGltZSAoZXZlbiBpZiB0aGUgd2VkZGluZyBuZXZlciBh Y3R1YWxseSB0YWtlcyBwbGFjZSBmb3Igc29tZSBzYWQgcmVhc29uKSwgd2hlcmVhcyBpZiBJJ20g c2F5aW5nIHRoYXQgSSdkIGxpa2UgdG8gYmVjb21lIG1hcnJpZWQgb25lIGRheSwgSSBkZXNpcmUg dGhlIGFjdCBvZiBtYXJyaWFnZSwgYW5kIHRodXMgSSBkZXNpcmUgdGhlIHNlbGJyaSwgb3IgcmF0 aGVyLCB0aGF0IHRoZSBzZWxicmkgYmUgYXBwbGllZCB0byBtZS48YnIgLz48YnIgLz5BbW91bnRz IGhhdmUgdGhlIHNhbWUgZ3JhbW1hdGljYWwgcHJvcGVydGllcyBhcyBzZWxicmksIGFzIHlvdSds bCBzZWUgaW4gdHdvIGxlc3NvbnMuIFNlbWFudGljYWxseSwgaG93ZXZlciwgdGhleSdyZSBkaXN0 aW5jdC4gQW4gYW1vdW50IGlzIF9faG93IG11Y2ggc29tZXRoaW5nIGZpdHMgYSBzZWxicmlfXywg d2hpY2ggaXMgc29tZXRoaW5nIGNvbXBsZXRlbHkgZGlmZmVyZW50IGZyb20gdGhlIHNlbGJyaSBp dHNlbGYuIEFuIGFtb3VudCBpcyBzb21lIGtpbmQgb2YgbnVtYmVyLCBvciBjYW4gYmUgcmVwcmVz ZW50ZWQgYnkgc29tZSBudW1iZXIsIGV4YWN0IG9yIGluZXhhY3QsIG5vIG1hdHRlciB3aGV0aGVy IHdoYXQgaXMgcXVhbnRpZmllZCBpcyBwcmFjdGljYWxseSBtZWFzdXJhYmxlLiA8YnIgLz5UaGVy ZSBpcyBzb21lIGRpc2FncmVlbWVudCBhYm91dCB3aGV0aGVyIGl0J3MgY29ycmVjdCB0byB1c2Ug bmkgdG8gcXVhbnRpZnkgc29tZXRoaW5nIHdoaWNoIGlzIHVubWVhc3VyYWJsZS4gVGh1cywgdGhl IGFtb3VudCBvZiBteSBncmVlbm5lc3MgaXMgY2VydGFpbmx5IHZhbGlkLCBzaW5jZSB0aGF0IGNv dWxkIGJlIG1lYXN1cmVkIGJ5IHNheSwgYSBkaWdpdGFsIGNhbWVyYSwgYnV0IHNwZWFraW5nIGFi b3V0IHRoZSBhbW91bnQgb2YgbWUgYmVpbmcgQm9iJ3MgZnJpZW5kIG1heSBub3QgYmUgYWNjZXB0 ZWQgbWV0YXBoeXNpY2FsbHkuIEEgZ3JlYXQgZXhhbXBsZSB3aGljaCB1bmRlcnNjb3JlcyB0aGUg ZGlmZmVyZW5jZSBiZXR3ZWVuIGFtb3VudHMgYW5kIHNlbGJyaSBhcHBsaWVkIHRvIHN1bXRpIGlz IHRoZSBmb2xsb3dpbmc6ICZxdW90O0kgY2hhbmdlIGluIGJsYWNrbmVzcyZxdW90Oy4gV2hlbiAm cXVvdDtibGFja25lc3MmcXVvdDsgaXMgY29uc2lkZXJlZCBhIHNlbGJyaSwgaXQgbWVhbnMgdGhh dCBjaGFuZ2UgZnJvbSBiZWluZyBibGFjayB0byBub3QgYmVpbmcgYmxhY2sgb3IgdGhlIG90aGVy IHdheSBhcm91bmQuIFdoZW4gJnF1b3Q7YmxhY2tuZXNzJnF1b3Q7IGlzIGNvbnNpZGVyZWQgYW4g YW1vdW50LCBpdCBtZWFucyBteSBza2luIHR1cm5zIGJsYWNrZXIgb3IgbGVzcyBibGFjayAoYXMg aXQgZG9lcyBkdXJpbmcgdGhlIHdpbnRlciB3aGVuIHRoZXJlJ3MgbGl0dGxlIHN1bmxpZ2h0KS48 YnIgLz48YnIgLz5Db25jZXB0cyBhcmUgbWF5YmUgZnVuY3Rpb25zIGFuZCBtYXliZSB0aGV5J3Jl IG5vdCBkZXBlbmRpbmcgb24gd2hvIHlvdSBhc2suIEFnYWluLCBsZXNzb24gdGhpcnR5IGV4cGxv cmVzIHRoZSByZWxhdGlvbiBiZXR3ZWVuIGNvbmNlcHRzIGFuZCB3aGF0IG1ha2VzIGFidHJhY3Rp b25zIGJlIGNvbnNpZGVyZWQgZnVuY3Rpb25zLiBDb25jZXB0cyBhcmUsIHVubGlrZSBhbW91bnRz IG9yIHNlbGJyaSwgYWx3YXlzIGNvbXBsZXRlbHkgc2VwZXJhdGVkIGZyb20gYW55b25lIGZpdHRp bmcgdGhhdCBjb25jZXB0LiBBIGNvbmNlcHQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIHJlYWwgd29y bGQuIEEgY29uY2VwdCBpcyBub3QgZXZlbiByZXByZXNlbnRlZCBpbiB0aGUgcmVhbCB3b3JsZCwg bGlrZSBhbW91bnRzIG9yIHNlbGJyaSBjYW4gYmUuIEEgY29uY2VwdCBleGlzdHMgb25seSBpbiB0 aGUgbWluZHMgb2YgcGVvcGxlLCBhbmQgaXMgdW5kZXJzdG9vZCBhcyB0aGUgbWVhbmluZyB0aGUg d29yZC4gVGh1cyAmcXVvdDtsb3ZlJnF1b3Q7IHVuZGVyc3Rvb2QgYXMgYSBjb25jZXB0IGlzIHRo ZSBpZGVhIG9mIHdoYXQgbG92ZSBpcyBubyBtYXR0ZXIgd2hvIGRvZXMgaXQuIE1heWJlIGFuIGV4 YW1wbGUgY2FuIGRlbW9uc3RyYXRlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYW1vdW50cywgc2Vs YnJpIGFuZCBjb25jZXB0czo8YnIgLz5JbiAmcXVvdDtJIGxpa2UgbG92aW5nJnF1b3Q7IGFuZCAm cXVvdDtJIGxpa2UgYmVpbmcgbG92ZWQmcXVvdDssIHdlIGFyZSBzcGVha2luZyBvZiBhIHNlbGJy aS48YnIgLz5JbiB0aGUgc2VudGVuY2UgJnF1b3Q7SSBsaWtlIGhvdyBtdWNoIEkgbG92ZSZxdW90 OywgSSBsaWtlIGFuIGFtb3VudCwgYW5kPGJyIC8+d2hlbiBzYXlpbmcgJnF1b3Q7SSBsaWtlIGxv dmUmcXVvdDssIEkgcmVmZXIgdG8gdGhlIGNvbmNlcHQgb2YgbG92ZS48YnIgLz48YnIgLz5Ccmlk aSBpcyBhIHR5cGUgd2hpY2ggeW91J3JlIGFsc28gZmFtaWxpYXIgd2l0aC4gQSBicmlkaSBpcyBj ZXJ0YWlubHkgbm90IGEgZnVuY3Rpb24sIGJ1dCBpdCBkb2VzIGJlYXIgc29tZSByZWxhdGlvbiB0 byBmdW5jdGlvbnMsIGFzIHdlJ2xsIHNlZSBsYXRlci4gQnJpZGkgdGhlbXNlbHZlcyBhcmUgaW1h Z2luYXJ5OyB0aGV5IGV4aXN0IG5vdCBpbiB0aGUgcmVhbCB3b3JsZCwgYnV0IGluc2lkZSB0ZXh0 cywgdGhlIG5leHQgdHlwZSB0byBleHBsYWluLiBIb3dldmVyLCBicmlkaSBhcmUgY29tcG9zZWQg b2Ygd2hpY2hldmVyIHNwZWNpZmljIHN5bWJvbHMgYXJlIHVzZWQgdG8gZXhwcmVzcyB0aGUgYnJp ZGkgLSBiZWNhdXNlIGJyaWRpIGFyZSBpbWFnaW5hcnksIGRpZmZlcmVudCBzZW50ZW5jZXMgbWF5 IGV4cHJlc3MgdGhlIHNhbWUgYnJpZGkgaWYgdXNlZCBpbiBkaWZmZXJlbnQgbGFuZ3VhZ2VzLCB0 aGUgd29yZCBvcmRlciBpcyBjaGFuZ2VkLCBvciBpZiBkaWZmZXJlbnQgd29yZHMgYXJlIHVzZWQg dG8gcmVmZXIgdG8gdGhlIHNhbWUgc3VtdGkuIFRodXMgJydtaSBkbyBwcmFtaScnLCAnJ21pIHBy YW1pIGRvJycsICZxdW90O0kgbG92ZSB5b3UmcXVvdDssICcnbWkga28gcHJhbWknJyBhbmQgJydk byBtaSBwcmFtaScnKHdoZW4gc3Bva2VuIGJ5IHRoZSBwZXJzb24sIHdoaWNoICcnZG8nJyBpbiB0 aGUgZmlyc3Qgc2VudGVuY2UgcmVmZXJzIHRvKSBhbCBjb250YWluIHRoZSBzYW1lIGJyaWRpLiBU cnVlIGJyaWRpIGFsd2F5cyBoYXZlIHRoZWlyIGZ1bGwgcGxhY2Ugc3RydWN0dXJlIGZpbGxlZCBi eSBzb21ldGhpbmcgd2l0aCBhIG5vbi16ZXJvIHZhbHVlLjxiciAvPjxiciAvPlRoZSBjb25jZXB0 IG9mIGEgdGV4dCBpcyBjbG9zZSBpbnRlcnR3aW5lZCB3aXRoIHRoZSBjb25jZXB0IG9mIGEgYnJp ZGkuIEFsbCBicmlkaSBhcmUgY29udGFpbmVkIGluIHRleHRzLCB0aG91Z2ggbm90IGFsbCB0ZXh0 cyBjb250YWluIGJyaWRpLiBJbmRlZWQsIG9uZSBtaWdodCBkZWZpbmUgdGV4dHMgYXMgc29tZXRo aW5nIHRoYXQgY2FuIGNvbnRhaW4gYSBicmlkaSwgYnV0IHRoaXMgY2FuIGVhc2lseSBsZWFkIHRv IGNpcmN1bGFyIGRlZmluaXRpb25zIHdoZW4gYXR0ZW1waW5nIHRvIGRlZmluZSB3aGF0IGJyaWRp IGFyZS4gVGhlIGN1cnJlbnQgdW5kZXJzdGFuZGluZyBvZiB3aGF0IHRoaW5ncyBzaG91bGQgYmUg Y29uc2lkZXJlZCBhIHRleHQgaXMgdmFndWUgYXQgYmVzdC4gTGlrZSBicmlkaSwgdGV4dHMgYXJl IHNvbWV0aGluZyBldGhlcmFsLCBzb21ldGhpbmcgd2UgY2FuIGltYWdpbmUgZXhpc3QgaW4gYSBy ZWFsbSBvdXRzaWRlIHRoZSBwaHlzaWNhbCB3b3JsZC4gV2hpbGUgdGhlc2UgbGVzc29ucyBjZXJ0 YWlubHkgYXJlIGEgdGV4dCwgdGhlIHRleHQgaXMgbm90IG1hZGUgb2YgdGhlIHBhcGVyIHRoZXNl IGxlc3NvbnMgYXJlIHByaW50ZWQgb24sIG9yIHRoZSBtYWduZXRpYyBmaWVsZHMgd2hpY2ggY29u c3RpdHV0ZXMgdGhlIGJ5dGVzIGl0J3Mgc3RvcmVkIG9uLiBUaG9zZSBwaHlzaWNhbCBtZWRpYSBv bmx5IHJlcHJlc2VudCB0aGUgdGV4dC4gQnV0IHdoYXQgZXhhY3RseSBjYW4gcmVwcmVzZW50IGEg dGV4dD8gV29yZHMsIGNlcnRhaW5seS4gQnV0IHdoYXQgYWJvdXQgYm9keSBsYW5ndWFnZT8gQW5k IGRvIGFjdGlvbnMgcmVhbGx5IHNwZWFrIF9fdGV4dHNfXyBsb3VkZXIgdGhhbiB3b3Jkcz8gVGhp cyBpcyBub3QgYW4gaXNzdWUgSSdsbCBhdHRlbXB0IHRvIGFuc3dlciBvciBldmVuIGdpdmUgYSBz aG90IGluIHRoZXNlIGxlc3NvbnMuPGJyIC8+PGJyIC8+U2V0cyBhcmUgbXVjaCBlYXNpZXIgdG8g ZGVhbCB3aXRoLiBUaGV5J3JlIGEga2luZCBvZiBtZXRhLXR5cGU6IEEgaW1hZ2luYXJ5IGJveCwg aW4gd2hpY2ggYSBncm91cCBvZiBzdW10aSBpcyBwYWNrZWQgaW50by4gVGhpcyBib3ggaGFzIHZl cnkgbGl0dGxlIHRvIGRvIHdpdGggd2hhdCdzIGluc2lkZSBpdC4gQSBiaWcgc2V0IGRvZXMgbm90 IG1lYW4gdGhhdCB0aGUgdGhpbmdzIGluIHRoZSBzZXQgaXMgYmlnLCBidXQgdGhhdCB0aGVyZSBh cmUgbWFueSB0aGluZ3MgaW4gdGhlIHNldC4gU2V0cyBoYXZlIHZlcnkgZmV3IHByb3BlcnRpZXMs IHRoZXJlZm9yZSBzZXRzIGFyZSBvbmx5IHVzZWQgd2hlbiBzcGVha2luZyBhYm91dCB0aGUgbnVt YmVyIG9mIHRoaW5ncyBpbiBhIGdpdmVuIGNhdGVnb3J5LCB0aGUgbnVtYmVyIG9mIHRoaW5ncyBz aGFyZWQgYmV0d2VlbiBzZXZlcmFsIGNhdGVnb3JpZXMsIHRoZSBjcml0ZXJpYSBmb3IgaW5jbHVk aW5nIHRoaW5ncyBpbiB0aGUgY2F0ZWdvcnkgZXRjLjxiciAvPjxiciAvPlRoZSBsYXN0IHVzZWQg dHlwZSBpcyB0aGUgdHJ1dGggdmFsdWUuIEkndmUgb25seSBzZWVuIGl0IGluIHVzZSBhIGhhbmRm dWwgb2YgdGltZXMsIGFuZCBvbmx5IGluY2x1ZGUgaXQgaGVyZSBiZWNhdXNlIGl0J2xsIGJlIHJl bGV2YW50IHdoZW4gZGlzY3Vzc2luZyBhIGNlcnRhaW4gYWJzdHJhY3Rpb24gaW4gdGhlIG5leHQg bGVzc29uLiBBIHRydXRoIHZhbHVlIGlzIHNvbWUgdmVyZGljdCB0aGF0IGEgYnJpZGkgaXMgdHJ1 ZSwgZmFsc2UsIG9yIGFueXdoZXJlIGluIGJldHdlZW4uIFRoZSBuYXR1cmUgb2YgYSB0cnV0aCB2 YWx1ZSBpcyBhIHZlcmRpY3QsICZxdW90O1RydWUmcXVvdDssICZxdW90O0ZhbHNlJnF1b3Q7LCAm cXVvdDtNb3N0bHkgdHJ1ZSZxdW90OyBvciB0aGUgbGlrZS4gSXQncyBvZnRlbiByZXByZXNlbnRl ZCBieSBhIG51bWJlciwgc3VjaCBhcyAwIChmYWxzZSksIDEgKHRydWUpIG9yIDAuNSAoaGFsZndh eSB0cnVlKSwgYnV0IHRoaXMgYSBzaW1wbHkgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHJ1dGgg dmFsdWUsIGFuZCBub3QgdGhlIHZhbHVlIGl0c2VsZi4gT25lIG1pZ2h0IGFzIHdlbGwgcmVwcmVz ZW50IGl0IGJ5IGEgY29sb3IsIHJhbmdpbmcgZnJvbSByZWQgdG8gYmx1ZS48YnIgLz48YnIgLz4h IUxvamJhbiBMZXNzb25zIC0gTGVzc29uIHR3ZW50eS1uaW5lIChzZW1hbnRpY3Mgb2Ygc2ltcGxl IGFic3RyYWN0aW9ucyk8YnIgLz5IYXZpbmcgYXF1aXJlZCBhIHRlcm1pbm9sb2d5IHN1aXRhYmxl IGZvciB0aGUgZGlzY3Vzc2lvbiBvZiB0eXBlcywgd2UgY2FuIG5vdyBlYXNpZXIgdGFrZSBvbiB0 aGUgc2VtYW50aWNzIG9mIGFic3RyYWN0aW9ucy4gTW9zdCBvZnRlbiwgYW4gYWJzdHJhY3Rpb24g aXMgbWVyZWx5IGEgYnJpZGkgY29uc2lkZXJlZCBhcyBhIGNlcnRhaW4gdHlwZS4gV2UgYmVnaW4g d2l0aCB3aGF0IEkgY29uc2lkZXIgdGhlIHNpbXBsZXN0IG9mIGFic3RyYWN0aW9uczo8YnIgLz4n J19fbnVfXycnOiB4MSBpcyBhbiBldmVudCBvZiBCUklESSBoYXBwZW5pbmc8YnIgLz5Zb3UncmUg YWxyZWFkeSBmYW1pbGlhciB3aXRoIHRoaXMgd29yZCBhbmQgaG93IGl0J3MgdXNlZC4gQSAnJ251 JyctYWJzdHJhY3Rpb24gaXMgYWx3YXlzIGFuIGV2ZW50LCBhbmQgYXMgc3VjaCwgaXQncyBzaXR1 YXRlZCBpbiBvbmUgcGFydGljdWxhciB0aW1lIGFuZCBzcGFjZS4gVGh1czo8YnIgLz4nJ21pIGNh dGx1IGxvIG51IGxvIHByZW51IGN1IGRhcnhpIGxvIGdlcmt1JycgLSAmcXVvdDtJIHdhdGNoIGEg cGVyc29uIGhpdHRpbmcgYSBkb2cmcXVvdDsgaXMgYSBwcm9wZXIgZXZlbnQsIHdoZXJlYXM8YnIg Lz4nJ21pIGtha25lIGxvIG51IGJhanJhIGZpIGxvIG1pIGJpcmthJycgLSAmcXVvdDtJIGNhbiBy dW5uaW5nIG9uIG15IGFybXMmcXVvdDsgaXMgd3JvbmcsIGJlY2F1c2Ugbm8gcGFydGljdWxhciBl dmVudCBvZiBydW5uaW5nIGlzIGltcGxpZWQ6IFRoZSBydW5uaW5nIHlvdSdyZSBhYmxlIHRvIGRv IGlzIGEgc2VsYnJpIC0gYSBnZW5lcmFsaXplZCBldmVudCwgYW5kIHRoZSBMb2piYW4gc2VudGVu Y2UgYWJvdmUgc2hvdWxkIHNvdW5kIGFzIGJhZGx5IHdvcmRlZCBhcyBpdHMgRW5nbGlzaCB0cmFu c2xhdGlvbi48YnIgLz48YnIgLz5UaGVyZSBhcmUgbWFueSB3YXlzIHRvIHZpZXcgYW4gZXZlbnQs IGFuZCBzbyB0aGVyZSBhcmUgZm91ciBvdGhlciBhYnN0cmFjdG9ycywgd2hpY2ggYWxsIGFsc28g Y3JlYXRlIGV2ZW50cy4gVGhlIG1lYW5pbmcgb2YgdGhlc2UgYWJzdHJhY3Rpb25zIGFyZSBhbGwg Y292ZXJlZCBieSAnJ251JycsIGJ1dCBtb3JlIHNwZWNpZmljLiBJJ2xsIGdvIHRocm91Z2ggdGhl bSBhbGwgaGVyZTo8YnIgLz4nJ19fbXVlX18nJzogeDEgaXMgYSBwb2ludC1saWtlIGV2ZW50IG9m IEJSSURJIGhhcHBlbmluZzxiciAvPicnX196YWlfXycnIHgxIGlzIGEgc3RhdGUgb2YgQlJJREkg YmVpbmcgdHJ1ZTxiciAvPicnX19wdXVfXycnIHgxIGlzIGEgcHJvY2VzcyBvZiBCUklESSB1bmZv bGRpbmcgdGhyb3VnaCBzdGFnZXMgeDI8YnIgLz4nJ19fenVvX18nJyB4MSBpcyBhbiBhY3Rpdml0 eSBvZiBCUklESSBjb25zaXN0aW5nIG9mIHRoZSByZXBlYXRlZCBldmVudCBvZiB4MgpUaGUgdW5k ZXJzdGFuZGluZyBvZiB0aGVzZSBhYnN0cmFjdG9ycyBpcyB0aWVkIHRvIHRoZSB1bmRlcnN0YW5k aW5nIG9mIGV2ZW50IGNvbnRvdXJzLiAnJ2114oCZZScnIGlzIGFraW4gdG8gdGhlIGV2ZW50IGNv bnRvdXIgJydjb+KAmWknJyBpbiB0aGUgc2Vuc2UgdGhhdCBib3RoIHRyZWF0IHRoZSBicmlkaSBh cyBwb2ludC1saWtlIGluIHRpbWUgYW5kIHNwYWNlOgotICcnbGUgbXVlIG1pIGthbnJvIGJpbnhv IGN1IHNlIGRqaWNhIG1pJycgIE1lIGJlY29taW5nIGhlYWx0aHkgaXMgZGVzaXJlZCBieSBtZSBo YXMgdGhlIHNlbWFudGljIG1lYW5pbmcgdGhhdCB0aGUgcHJvY2VzcyBvZiBiZWNvbWluZyBoZWFs dGh5IGlzIG5vdCBiZWluZyBjb25zaWRlcmVkLiBJZiBpdCBjb25zaXN0cyBvZiBjaGVtb3RoZXJh cHksIGl0IGlzIHBsYXVzaWJsZSB0aGF0IHRoaXMgcHJvY2VzcyBpcyBub3QgZGVzaXJlZCBhdCBh bGwuIEJlY29taW5nIGhlYWx0aHksIGluIGEgcG9pbnQtbGlrZSBzZW5zZSBpcyBkZXNpcmVkLCBo b3dldmVyLjxiciAvPicnemFpJycgaXMgbGlrZSB0aGUgZXZlbnQgY29udG91ciAnJ2NhbycnIGlu IHRoZSBzZW5zZSB0aGF0ICcnbGUgemFpIEJSSURJJycgYmVnaW5zIHRvIGFwcGx5IHdoZW4gdGhl IGJyaWRpIGJlZ2lucyBhbmQgc2hhcnBseSBlbmRzIHdoZW4gdGhlIGJyaWRpIGNlYXNlcyB0byBi ZSB0cnVlLCBtdWNoIGxpa2UgJydjYW8nJy4gCisgJydsZSBtdWUgbWkga2Fucm8gYmlueG8gY3Ug c2UgZGppY2EgbWknJyAgTWUgYmVjb21pbmcgaGVhbHRoeSBpcyBkZXNpcmVkIGJ5IG1lIGhhcyB0 aGUgc2VtYW50aWMgbWVhbmluZyB0aGF0IHRoZSBwcm9jZXNzIG9mIGJlY29taW5nIGhlYWx0aHkg aXMgbm90IGJlaW5nIGNvbnNpZGVyZWQuIElmIGl0IGNvbnNpc3RzIG9mIHBhaW5mdWwgY2hlbW90 aGVyYXB5LCBpdCBpcyBwbGF1c2libGUgdGhhdCB0aGlzIHByb2Nlc3MgaXMgbm90IGRlc2lyZWQg YXQgYWxsLiBCZWNvbWluZyBoZWFsdGh5LCBpbiBhIHBvaW50LWxpa2Ugc2Vuc2UgaXMgZGVzaXJl ZCwgaG93ZXZlci48YnIgLz4nJ3phaScnIGlzIGxpa2UgdGhlIGV2ZW50IGNvbnRvdXIgJydjYW8n JyBpbiB0aGUgc2Vuc2UgdGhhdCAnJ2xlIHphaSBCUklESScnIGJlZ2lucyB0byBhcHBseSB3aGVu IHRoZSBicmlkaSBiZWdpbnMgYW5kIHNoYXJwbHkgZW5kcyB3aGVuIHRoZSBicmlkaSBjZWFzZXMg dG8gYmUgdHJ1ZSwgbXVjaCBsaWtlICcnY2FvJycuCicnemHigJlvIHph4oCZaSBtaSBrYW5ybyBi aW54bycnIG1lYW5zIHRoYXQgdGhlIHN0YXRlIG9mIG1lIGJlY29taW5nIGhlYWx0aHkgdG9vayB0 b28gbG9uZyB0aW1lOyB0aGF0IHRoZSB0aW1lIGJldHdlZW4gbXkgaGVhbHRoIGJlZ2lubmluZyB0 byBpbXByb3ZlIGFuZCBiZSBhY3R1YWxseSBiZWluZyBoZWFsdGh5IHdhcyBsb25nLXdpbmRlZC4K LSBUaGUgYWN0dWFsIHRyZWF0bWVudCBpcyBwZXJoYXBzIGJldHRlciBjYXVnaHQgYnkgJydwdXUn Jywgd2hpY2gsIGxpa2UgZXZlbnQgY29udG91cnMgaW4gZ2VuZXJhbCwgcHV0cyBlbXBoYXNpcyBv biB0aGUgZW50aXJlIGV2ZW50IGFzIHVuZm9sZGluZyB0aHJvdWdoIHRpbWUuICcnLmlpIGJhIHpp IGNvYSBwdXUgbWkga2Fucm8gYmlueG8gdmF1IC5vaScnIGV4cHJlc3NlcyBmZWFyIHRoYXQgdGhl IHBhaW5mdWwgcHJvY2VzcyBvZiBiZWNvbWluZyBoZWFsdGh5IGlzIGFib3V0IHRvIGJlZ2luLiBU aGUgeDIgaXMgZmlsbGVkIGJ5IGEgc2VxdWVuY2Ugb2Ygc3RhZ2VzLCB3aGljaCBjYW4gYmUgbWFk ZSBieSBpbnRlcnNwYWNpbmcgdGhlIHN0YWdlcyB3aXRoIHRoZSBub24tbG9naWNhbCBjb25uZWN0 aXZlICcnY2VvJyc6ICcnemV1IHB1dSBtaSBrYW5ybyBiaW54byBrZWkgbGUgbnUgbWkgZmFja2kg Y2VvIGxlIG51IG1pIGphaSB0b2xzdGkgY2VvIG1pIHJlbnZpJycgbWVhbnMgc29tZXRoaW5nIGlz IGEgbG9uZyBwcm9jZXNzIG9mIG1lIGJlY29taW5nIGhlYWx0aHkgY29uc2lzdGluZyBvZiB0aGUg c3RhZ2VzIEEgKSBJIGZpbmQgb3V0IEIgKSBzb21ldGhpbmcgYWJvdXQgbWUgYmVnaW5zIEMgKSBJ IGVuZHVyZS48YnIgLz5GaW5hbGx5LCB0aGUgc2VtYW50aWNzIG9mICcnenVvJycgdHJlYXRzIHRo ZSBhYnN0cmFjdGlvbiBhcyBjb25zaXN0aW5nIG9mIGEgbnVtYmVyIG9mIHJlcGVhdGVkIGFjdGlv bnM6ICcnbG8gemEnYSB6byd1IGRhcnhpIGxvIHRhbnhlIGN1IHJpbmthIGxvIGNhIG11J2UgcG9y cGknJyAgJnF1b3Q7VGhlIG9ic2VydmVkIGFjdGl2aXR5IG9mIGJlYXRpbmcgdGhlIGJveCBjYXVz ZWQgaXRzIGN1cnJlbnQgYnJva2VubmVzcyZxdW90OyBpcyBtb3JlIGFjY3VyYXRlIHRoYW4gdGhl IHNpbWlsaWFyIHNlbnRlbmNlIHVzaW5nICcnbnUnJywgYmVjYXVzZSAnJ3p1J28nJyBtYWtlcyBp dCBleHBsaWNpdCB0aGF0IGl0IHdhcyB0aGUgcmVwZWF0aW5nIG9mIHRoZSBhY3Rpb24gb2YgYmVh dGluZywgbm90IHRoZSBiZWF0aW5nIGluIGl0c2VsZiB3aGljaCBicm9rZSB0aGUgYm94LjxiciAv PlRoZSB4MiBvZiAnJ3p1J28nJyBpcyBlaXRoZXIgb25lIGV2ZW50IG9yIGEgc2VxdWVuY2Ugd2hp Y2ggaXMgcmVwZWF0ZWQuIFRvIGJlIHVubmVjZXNzYXJpbHkgZXhwbGljaXQsIHdlIGNvdWxkIGhh dmUgc3RhdGVkIHRoYXQgdGhlIGNhdXNlIG9mIHRoZSBjdXJyZW50IGJyb2tlbm5lc3Mgd2FzICcn bG8gem8ndSBkYXJ4aSBsbyB0YW54ZSBrZWkgbG9udSBsYWZ0aSBsbyBncmFuYSBrZWkga3UgY2Un byBsb251IG11dmdhdSBsbyBncmFuYSBsbyB0YW54ZSBrZWkga3UgY2UnbyAuLi4nJyBhbmQgc28g b24uPGJyIC8+Tm90ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuICcnbXVlIGJhanJhJycsICcnemFp IGJhanJhJycsICcncHV1IGJhanJhJycsICcnenVvIGJhanJhJycgYW5kICcnbnUgYmFqcmEnJy4g VGhlIHBvaW50LWxpa2UgZXZlbnQgb2YgcnVubmluZyBwdXRzIGVtcGhhc2lzIG9uIHRoZSBldmVu dCBoYXBwZW5pbmcsIGJ1dCBub3RoaW5nIGVsc2UuIFRoZSBzdGF0ZSBvZiBydW5uaW5nIGJlZ2lu cyB3aGVuIHRoZSBydW5uZXIgYmVnaW5zIGFuZCBzdG9wcyB3aGVuIHRoZSBydW5uZXIgc3RvcHMu IFRoZSBwcm9jZXNzIG9mIHJ1bm5pbmcgY29uc2lzdHMgb2YgYSB3YXJtLXVwLCBrZWVwaW5nIGEg c3RlYWR5IHNwZWVkLCBhbmQgdGhlIGZpbmFsIHNwcmludC4gVGhlIGFjdGl2aXR5IG9mIHJ1bm5p bmcgY29uc2lzdHMgdGhlIGN5Y2xlcyBvZiBsaWZ0aW5nIG9uZSBmb290LCBtb3ZpbmcgaXQgZm9y d2FyZCwgZHJvcHBpbmcgaXQgZG93biwgcmVwZWF0IHdpdGggdGhlIG90aGVyIGZvb3QuIEFsbCBv ZiB0aGVzZSBhc3BlY3RzIGFyZSBzaW11bHRhbmVvdXNseSBjb3ZlcmVkIGJ5IHRoZSBldmVudCBv ZiBydW5uaW5nLCAnJ251IGJhanJhJycuIDxiciAvPlNvbWUgYWJzdHJhY3Rpb25zIGFyZSBldmVu IG1vcmUgYWJzdHJhY3QgdGhhbiBtZXJlIGV2ZW50cywgd2hpY2ggYWZ0ZXIgYWxsIGFyZSBib3Vu ZCBpbiBzcGFjZSBhbmQgdGltZS4gT25lIGV4YW1wbGUgb2Ygc3VjaCBpcyAnJ2xpJ2knJywgdGhl ICZxdW90O2V4cGVyaWVuY2UgYWJzdHJhY3Rpb24mcXVvdDs6PGJyIC8+X18nJ2xpJ2knJ19fIEV4 cGVyaWVuY2UgYWJzdHJhY3RvcjogeDEgaXMgeDIncyBpbnRlcm5hbCBleHBlcmllbmNlIG9mIEJS SURJPGJyIC8+VW5saWtlIGV2ZW50IGFic3RyYWN0aW9ucywgdGhpcyBpcyBleHBsaWNpdGx5IG1l bnRhbCAtIGEgJydsaSdpJyctYWJzdHJhY3Rpb24gY2Fubm90IGJlIHNhaWQgdG8gZXhpc3Qgb3V0 c2lkZSB0aGUgbWluZCBvZiBhIHBlcnNvbi4gJydsaSdpJycgaXMgZGVyaXZlZCBmcm9tICcnbGlm cmknJywgYW5kIGlzIGFsd2F5cyBhICcnc2UgbGlmcmknJyAtIGFuIGV4cGVyaWVuY2UuPGJyIC8+ VGhvdWdoIGl0J3Mgc29tZXdoYXQgcmVsYXRlZCB0byAnJ25pJycsIHRoaXMgbWlnaHQgYmUgYSBn b29kIHRpbWUgdG8gaW50cm9kdWNlICcnamVpJycgLSB0aGUgdHJ1dGgtYWJzdHJhY3Rpb24uIFRo aXMgaXMgb25lIG9mIHRoZSBsZWFzdCB1c2VkIGFic3RyYWN0aW9ucyBvZiB0aGVtIGFsbCwgYW5k IEkgb25seSBpbmNsdWRlIGl0IGhlcmUgZm9yIGNvbXBsZXRlbmVzcy48YnIgLz5fXycnamVpJydf XzogVHJ1dGggYWJzdHJhY3Rpb246IHgxIGlzIHRoZSB0cnV0aC12YWx1ZSBvZiBCUklESSB1bmRl ciBlcGlzdGVtb2xvZ3kgeDI8YnIgLz5BICcnamVpJyctYWJzdHJhY3Rpb24gaXMgc29tZXRoaW5n IGJldHdlZW4gdHJ1ZSBhbmQgZmFsc2UsIGFuZCBjYW4gYmUgcmVwcmVzZW50ZWQgYnkgYSBudW1i ZXIgYmV0d2VlbiAwIChmYWxzZSkgYW5kIDEgKHRydWUpLiBVc2luZyAnJ2plaScnLWFic3RyYWN0 aW9ucyBpbiBtYXRoZW1hdGljcyBpcyBpbmFkdmljYWJsZSwgc2luY2UgaXQgaGFzbid0IGdvdCBh bnkgcHJvcGVydGllcyBub3JtYWxseSBhc3NvY2lhdGVkIHdpdGggbnVtYmVycyAtIG9uZSBtaWdo dCBhcyB3ZWxsIHJlcHJlc2VudCB0aGUgdHJ1dGggdmFsdWUgb24gYSBzcGVjdHJ1bSBvZiBjb2xv ciBmcm9tIHJlZCB0byBibHVlLjxiciAvPicnamVpJycgaXMgcmFyZWx5IHVzZWQsIG5vdCBiZWNh dXNlIHRydXRoIGFic3RyYWN0aW9ucyBhcmUgaW5mcmVxdWVudGx5IG5lZWRlZCwgYnV0IGJlY2F1 c2UgbW9zdCBsb2piYW5pc3RzIHVzZSBvdGhlciBtZWNoYW5pc21zIHRvIG9idGFpbiB0aGVtLCBm b3IgaW5zdGFuY2UgJydrYXUnJywgYXMgZXhwbGFpbmVkIGxhdGVyIGluIHRoaXMgbGVzc29uLjxi ciAvPicnbWkgZGknaSBwZW5zaSBsbyBqZWkgbWkgbWVya28nJyAtICZxdW90O0kgb2Z0ZW4gdGhp bmsgYWJvdXQgd2hldGhlciBJIGFtIEFtZXJpY2FuIG9yIG5vdCZxdW90OyAoY29udHJhc3Qgd2l0 aCAnJ21pIGRpJ2kgcGVuc2kgbG8gbmkgbWkgbWVya28nJyAtICZxdW90O0kgb2Z0ZW4gdGhpbmsg YWJvdXQgaG93IEFtZXJpY2FuIEkgYW0mcXVvdDspPGJyIC8+VGhlIGZvbGxvd2luZyBhYnN0cmFj dGlvbiBpcyBvbmUgb2YgdGhlIG1vc3Qgd2lkZWx5IHVzZWQgYWJzdHJhY3Rpb24gZHVlIHRvIGl0 cyBmcmVxdWVudCB1c2VmdWxuZXNzOjxiciAvPl9fJydkdSd1JydfXzogQnJpZGkgYWJzdHJhY3Rp b246IHgxIGlzIHRoZSBicmlkaSBvZiBCUklESSwgYXMgcmVwcmVzZW50ZWQgYnkgdGV4dCB4Mjxi ciAvPiBBY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkLCBhYnN0cmFjdGlvbnMgbGlrZSB0cnV0aHMs IGxpZXMsIHRoaW5ncyBiZWluZyBkaXNjb3ZlcmVkIG9yIGJlbGlldmVkIGFyZSBhbGwgcHVyZSBi cmlkaTo8YnIgLz4nJy51aSBzYWkgcHUgemkgZmFja2kgbGUgZHV1IHppIGNpdGthIGxvIGNpZGpy cGl0c2EnJyAgWWVzISBJIGp1c3QgZm91bmQgb3V0IHRoYXQgcGl6emEgd2lsbCBiZSBlYXRlbiBz b29uIS48YnIgLz4gV2hhdCBpcyBiZWluZyBkaXNjb3ZlcmVkIGlzIHRoZSB0cnV0aCBvZiBhbiBh YnN0cmFjdCBicmlkaSwgc28gJydkdSd1JycgaXMgYXBwcm9wcmlhdGUuPGJyIC8+Rm9yIGJyaWRp IHRvIGV4aXN0IChvciBhdCBsZWFzdCB0byBoYXZlIGFueSByZWxldmFuY2UpLCB0aGV5IG11c3Qg YmUgcmVwcmVzZW50ZWQgYnkgc29tZSB0ZXh0LCB3aGV0aGVyIHRoaXMgaXMgc3BlZWNoLCB0aG91 Z2h0IG9yIHdyaXRpbmcuIFRoZSB0ZXJtIHRleHQgaXMgbWlzbGVhZGluZyBpZiBpdCBpcyBleHBy ZXNzZWQgb25seSBpbiB0aGUgbWluZCBvZiBzb21lb25lLCBidXQgdGhlIHRlcm0gbm9uZXRoZWxl c3MgYXBwbGllcy48YnIgLz5PbmUgdXNlIG9mIHRoZSB4MiBvZiAnJ2R1J3UnJyBpcyB0byBleHBy ZXNzIGluZGlyZWN0IHF1b3RhdGlvbjo8YnIgLz4nJy51ZSBkbyBwdSBjdXNrdSBrdSdpIGxvIHNl IGR1J3UgZG8gbmVsY2kgbG8gY2thZmknJyAtICZxdW90O09oISBCdXQgeW91IHNhaWQgdGhhdCB5 b3UgbGlrZWQgY29mZmVlJnF1b3Q7LiBIZXJlLCB0aGUgZXhwcmVzc2VkIHNlbnRlbmNlIGlzIHRo ZSB0ZXh0LCB3aGVyZWluIHRoZSBicmlkaSBpcyBjb250YWluZWQuCisgVGhlIGFjdHVhbCB0cmVh dG1lbnQgaXMgcGVyaGFwcyBiZXR0ZXIgY2F1Z2h0IGJ5ICcncHV1JycsIHdoaWNoLCBsaWtlIGV2 ZW50IGNvbnRvdXJzIGluIGdlbmVyYWwsIHB1dHMgZW1waGFzaXMgb24gdGhlIGVudGlyZSBldmVu dCBhcyB1bmZvbGRpbmcgdGhyb3VnaCB0aW1lLiAnJy5paSBiYSB6aSBjb2EgcHV1IG1pIGthbnJv IGJpbnhvIC5vaScnIGV4cHJlc3NlcyBmZWFyIHRoYXQgdGhlIHBhaW5mdWwgcHJvY2VzcyBvZiBi ZWNvbWluZyBoZWFsdGh5IGlzIGFib3V0IHRvIGJlZ2luLiBUaGUgeDIgaXMgZmlsbGVkIGJ5IGEg c2VxdWVuY2Ugb2Ygc3RhZ2VzLCB3aGljaCBjYW4gYmUgbWFkZSBieSBpbnRlcnNwYWNpbmcgdGhl IHN0YWdlcyB3aXRoIHRoZSBub24tbG9naWNhbCBjb25uZWN0aXZlICcnY2VvJyc6ICcnemV1IHB1 dSBtaSBrYW5ybyBiaW54byBrZWkgbG8gbnUgbWkgZmFja2kgY2VvIGxvIG51IG1pIGphaSB0b2xz dGkgY2VvIGxvIG51IG1pIHJlbnZpJycgbWVhbnMgc29tZXRoaW5nIGlzIGEgbG9uZyBwcm9jZXNz IG9mIG1lIGJlY29taW5nIGhlYWx0aHkgY29uc2lzdGluZyBvZiB0aGUgc3RhZ2VzIEEgKSBJIGZp bmQgb3V0IEIgKSBzb21ldGhpbmcgYWJvdXQgbWUgYmVnaW5zIEMgKSBJIGVuZHVyZS48YnIgLz5G aW5hbGx5LCB0aGUgc2VtYW50aWNzIG9mICcnenVvJycgdHJlYXRzIHRoZSBhYnN0cmFjdGlvbiBh cyBjb25zaXN0aW5nIG9mIGEgbnVtYmVyIG9mIHJlcGVhdGVkIGFjdGlvbnM6ICcnbG8gemEnYSB6 byd1IGRhcnhpIGxvIHRhbnhlIGN1IHJpbmthIGxvIGNhIG11J2UgcG9ycGknJyAgJnF1b3Q7VGhl IG9ic2VydmVkIGFjdGl2aXR5IG9mIGJlYXRpbmcgdGhlIGJveCBjYXVzZWQgaXRzIGN1cnJlbnQg YnJva2VubmVzcyZxdW90OyBpcyBtb3JlIGFjY3VyYXRlIHRoYW4gdGhlIHNpbWlsaWFyIHNlbnRl bmNlIHVzaW5nICcnbnUnJywgYmVjYXVzZSAnJ3p1J28nJyBtYWtlcyBpdCBleHBsaWNpdCB0aGF0 IGl0IHdhcyB0aGUgcmVwZWF0aW5nIG9mIHRoZSBhY3Rpb24gb2YgYmVhdGluZywgbm90IGEgcGFy dGljdWxhciBpbnN0YW5jZSBvZiBiZWF0aW5nIHdoaWNoIGJyb2tlIHRoZSBib3guCgotICEhTG9q YmFuIExlc3NvbnMgLSBMZXNzb24gdHdlbnR5LW5pbmUgKHNlbWFudGljcyBvZiBjb21wbGV4IGFi c3RyYWN0aW9ucyk8YnIgLz5BbGwgdGhlIHR5cGVzIG9mIGFic3RyYWN0aW9uIHdlIGhhdmUgc2Vl biB0aHVzZmFyLCBldmVudHMgYW5kIGJyaWRpLCBoYXZlIGFsbCB0aGVpciBzdW10aSBwbGFjZXMg ZmlsbGVkIC0gaWYgbm90IGV4cGxpY2l0bHksIHRoZW4gYnkgJyd6bydlJycuIEFzIHdlIHNoYWxs IHNlZSwgaXQncyBhIGRpZmZlcmVudCBzdG9yeSB3aGVuIGl0IGNvbWVzIHRvIHRoZSBmb2xsb3dp bmcgYWJzdHJhY3Rpb25zLiBMZXQncyBiZWdpbiB3aXRoIHRoZSBzaW1wbGVzdDoKKyBUaGUgeDIg b2YgJyd6dSdvJycgaXMgZWl0aGVyIG9uZSBldmVudCBvciBhIHNlcXVlbmNlIHdoaWNoIGlzIHJl cGVhdGVkLiBUbyBiZSB1bm5lY2Vzc2FyaWx5IGV4cGxpY2l0LCB3ZSBjb3VsZCBoYXZlIHN0YXRl ZCB0aGF0IHRoZSBjYXVzZSBvZiB0aGUgY3VycmVudCBicm9rZW5uZXNzIHdhcyAnJ2xvIHpvJ3Ug ZGFyeGkgbG8gdGFueGUga2VpIGxvbnUgbGFmdGkgbG8gZ3JhbmEga2VpIGt1IGNlJ28gbG9udSBt dXZnYXUgbG8gZ3JhbmEgbG8gdGFueGUga2VpIGt1IGNlJ28nJyAuLi4gYW5kIHNvIG9uLjxiciAv Pk5vdGUgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiAnJ211ZSBiYWpyYScnLCAnJ3phaSBiYWpyYScn LCAnJ3B1dSBiYWpyYScnLCAnJ3p1byBiYWpyYScnIGFuZCAnJ251IGJhanJhJyc6IFRoZSBwb2lu dC1saWtlIGV2ZW50IG9mIHJ1bm5pbmcgcHV0cyBlbXBoYXNpcyBvbiB0aGUgZXZlbnQgaGFwcGVu aW5nLCBidXQgbm90aGluZyBlbHNlLiBUaGUgc3RhdGUgb2YgcnVubmluZyBiZWdpbnMgd2hlbiB0 aGUgcnVubmVyIGJlZ2lucyBhbmQgc3RvcHMgd2hlbiB0aGUgcnVubmVyIHN0b3BzLiBUaGUgcHJv Y2VzcyBvZiBydW5uaW5nIGNvbnNpc3RzIG9mIGEgd2FybS11cCwga2VlcGluZyBhIHN0ZWFkeSBz cGVlZCwgYW5kIHRoZSBmaW5hbCBzcHJpbnQuIFRoZSBhY3Rpdml0eSBvZiBydW5uaW5nIGNvbnNp c3RzIHRoZSBjeWNsZXMgb2YgbGlmdGluZyBvbmUgZm9vdCwgbW92aW5nIGl0IGZvcndhcmQsIGRy b3BwaW5nIGl0IGRvd24sIHJlcGVhdCB3aXRoIHRoZSBvdGhlciBmb290LiBBbGwgb2YgdGhlc2Ug YXNwZWN0cyBhcmUgc2ltdWx0YW5lb3VzbHkgY292ZXJlZCBieSB0aGUgZXZlbnQgb2YgcnVubmlu ZywgJydudSBiYWpyYScnLgoKLSBfXycnbmknJ19fOiBBbW91bnQgYWJzdHJhY3Rpb246IHgxIGlz IHRoZSBhbW91bnQgb2YgQlJJREkgb24gdGhlIHNjYWxlIHgyIAorIEFub3RoZXIgdHlwZSBvZiBh YnN0cmFjdG9yIGlzIHRoZSBleHBlcmllbmNlIGFic3RyYWN0b3IsICcnbGknaScnOjxiciAvPicn X19saSdpX18nJzogRXhwZXJpZW5jZSBhYnN0cmFjdG9yOiB4MSBpcyB4MidzIGludGVybmFsIGV4 cGVyaWVuY2Ugb2YgQlJJREk8YnIgLz5BbiBleHBlcmllbmNlIGNhbiBiZSBjb25zaWRlcmVkIGFu IGV2ZW50IHR5cGUuIEl0IGhhcyBhbG1vc3QgdGhlIHNhbWUgYXR0cmlidXRlczogSXQncyBwbGFj ZWQgaW4gc3BhY2UsIHRoZXJlJ3MgZm9jdXMgb24gdGhlIHRpbWUgb3ZlciB3aGljaCBpdCB1bmZv bGRzLCBhbmQgaXQncyBub3QgYSBmdW5jdGlvbi48YnIgLz5Vbmxpa2UgZXZlbnQgYWJzdHJhY3Rp b25zLCBob3dldmVyLCBhbiBleHBlcmllbmNlIGlzIGV4cGxpY2l0bHkgbWVudGFsIC0gYSAnJ2xp J2knJy1hYnN0cmFjdGlvbiBjYW5ub3QgYmUgc2FpZCB0byBleGlzdCBvdXRzaWRlIHRoZSBtaW5k IG9mIGEgcGVyc29uLiBUaGlzIGRpZmZlcmVjZSBpcyBwdXJlbHkgc2VtYW50aWMsIGFuZCBleGNo YW5naW5nIGV2ZW50IGFuZCBleHBlcmllbmNlIGFic3RyYWN0b3JzIHdvdWxkIG5vdCBiZSBjb25z aWRlcmVkIGEgdHlwZSBmYWlsdXJlIGluIHRoZSBzYW1lIHNlbnNlIGFzICcnbWkga2FrbmUgbG8g bnUuLi4nJy4gSXQgbWlnaHQgbm90IG1ha2Ugc2Vuc2UsIGFzIGluICcnbG8ga2FjbWEgY3UgdnJl amkgbG8gbGknaSBsbyBtaSBwZW5kbyBjdSBjbGl2YSBrZWkgbWknJyAtICZxdW90O0EgY2FtZXJh IHJlY29yZGVkIG15IGV4cGVyaWVuY2Ugb2YgbXkgZnJpZW5kIGxlYXZpbmcmcXVvdDsuIEJ1dCB0 aGVuIGFnYWluLCBjaW5lbWEgaXMgZGVwZW5kZW50IG9uIGNhbWVyYXMgYmVpbmcgYWJsZSB0byBy ZWNvcmQgdGhlIGFjdG9ycyBlbW90aW9ucy48YnIgLz5JdCBkb2VzLCBJIHRoaW5rLCBtYWtlIGNv bXBsZXRlIHNlbnNlIHRvIHdyaXRlICcnbWkgY2lrc2kgbG8gbGknaSBsbyBtaSBwZW5kbyBjdSBj bGl2YSBrZWkgbWknJywgJydsbyBsaSdpIGxvIG1pIHR1bmJhIGN1IG1vcnNpIGN1IG11a3RpIGxv IG51IG1pIGNhdHJhJycsICBhbmQgdGhlIGxpa2UuPGJyIC8+JydsaSdpJycgaXMgZGVyaXZlZCBm cm9tICcnbGlmcmknJywgYW5kIGlzIGluZGVlZCBhICcnc2UgbGlmcmknJyAtIGFuIGV4cGVyaWVu Y2UuCgotIEFuZCBsZXQncyBzZWUgaXQgcHV0IHRvIHVzZTo8YnIgLz4nJ21pIHptYWR1IGRvIGxv IG5pIHhla3JpJycgLSAmcXVvdDtJJ20gYmxhY2tlciB0aGFuIHlvdS4mcXVvdDs8YnIgLz5BICcn bmknJy1hYnN0cmFjdGlvbiBpcyB1c3VhbGx5IHNvbWUgbnVtYmVyLCBleGFjdCBvciBpbmV4YWN0 LiBBcyB0aGUgZm9sbG93aW5nIGV4YW1wbGUgYWJvdmUgc2hvd3MsIHdoYXQgaXMgcXVhbnRpZmll ZCBtYXkgbm90IGFsd2F5cyBiZSBwcmFjdGljYWxseSBtZWFzdXJhYmxlLiBJbiBwcmluY2lwbGUs IGhvd2V2ZXIsIGJsYWNrbmVzcyBjb3VsZCBiZSBtZWFzdXJlZCB3aXRoIHNvbWUgb3B0aWNhbCBk ZXZpY2UuIFRoZXJlIGlzIHNvbWUgZGlzYWdyZWVtZW50IGFib3V0IHdoZXRoZXIgaXQncyBjb3Jy ZWN0IHRvIHVzZSAnJ25pJycgdG8gcXVhbnRpZnkgc29tZXRoaW5nIHdoaWNoIGlzIHVubWVhc3Vy YWJsZSwgbGlrZTxiciAvPicnbGUgbmkgbWkgcGVuZG8gZG8nJyAtICZxdW90O0hvdyBtdWNoIHdl IGFyZSBmcmllbmRzJnF1b3Q7CisgQSAnJ2R1J3UnJy1hYnN0cmFjdGlvbiBpcyBwcm9iYWJseSB0 aGUgb3RoZXIga2luZCBvZiBhYnN0cmFjdGlvbiB5b3UncmUgdXNlZCB0byBzZWVpbmcsIGJlc2lk ZSAnJ251JycuPGJyIC8+JydfX2R1J3VfXycnOiBCcmlkaSBhYnN0cmFjdGlvbjogeDEgaXMgdGhl IGJyaWRpIG9mIEJSSURJLCBhcyByZXByZXNlbnRlZCBieSB0ZXh0IHgyPGJyIC8+QWNjb3JkaW5n IHRvIHRoZSBzdGFuZGFyZCwgYWJzdHJhY3Rpb25zIGxpa2UgdHJ1dGhzLCBsaWVzLCB0aGluZ3Mg YmVpbmcgZGlzY292ZXJlZCBvciB0aGluZ3MgYmVpbmcgYmVsaWV2ZWQgYXJlIGFsbCBwdXJlIGJy aWRpOjxiciAvPicnLnVpIHNhaSBwdSB6aSBmYWNraSBsbyBkdXUgemkgY2l0a2EgbG8gY2lkanJw aXRzYScnICBZZXMhIEkganVzdCBmb3VuZCBvdXQgdGhhdCBwaXp6YSB3aWxsIGJlIGVhdGVuIHNv b24hLjxiciAvPicnbWkga3JpY2kgbG8gZHUndSBsYSB0dXJuaSBjdSB6YmFzdSBwaSBybyBsbyBt dW5qZSB6aSdvJycgLSAmcXVvdDtJIGJlbGlldmUgVGhlIExvcmQgY3JlYXRlZCBhbGwgb2YgdGhl IHVuaXZlcnNlJnF1b3Q7PGJyIC8+V2hhdCBpcyBiZWluZyBkaXNjb3ZlcmVkIG9yIGJlbGlldmVk IGlzIHRoZSB0cnV0aCBvZiBhbiBhYnN0cmFjdCBicmlkaSwgc28gJydkdSd1JycgaXMgYXBwcm9w cmlhdGUuPGJyIC8+QXMgeW91IGNhbiBzZWUsIHRoZSB4MiBvZiAnJ2R1J3UnJyBpcyB1c2VkIGZv ciB0aGUgdGV4dCBpbiB3aGljaCB0aGUgYnJpZGkgaXMgY29udGFpbmVkLiBBcyBzdGF0ZWQgYmVm b3JlLCB0aGUgbmF0dXJlIG9mIHRleHRzIGFyZSBoYXJkIHRvIG5haWwgZG93biwgYnV0IGluIHBy YWN0aWNlLCAnJ2R1J3UnJydzIHgyIGNhbiBiZSB1c2VkIHRvIGV4cHJlc3MgaW5kaXJlY3QgcXVv dGF0aW9uOjxiciAvPicnLnVlIGRvIHB1IGN1c2t1IGt1J2kgbG8gc2UgZHUndSBkbyBuZWxjaSBs byBja2FmaScnIC0gJnF1b3Q7T2ghIEJ1dCB5b3Ugc2FpZCB0aGF0IHlvdSBsaWtlZCBjb2ZmZWUh JnF1b3Q7LiAKCi0gSXQncyB3cm9uZyB0byB1c2UgJyduaScnIGFzIGEgd2F5IHRvIGVudW1lcmF0 ZSBob3cgbWFueSBvYmplY3RzIGZpdCBhIHByZWRpY2F0ZSAtIGl0J3MgYWx3YXlzIGFib3V0IHRv IHdoaWNoIGV4dGVudCBjZXJ0YWluIHN1bXRpIGZpdCBhIHByZWRpY2F0ZS4gVGh1czogJydkbyBt bGVjYSBtaSBsbyBuaSBzZSBwYW56aScnIG1lYW5zICZxdW90O1lvdSBhcmUgbGVzcyBvZiBhIHBh cmVudCB0aGFuIEkgYW0mcXVvdDssIGFuZCBub3QgJnF1b3Q7WW91IGhhdmUgZmV3ZXIgY2hpbGRy ZW4gdGhhbiBtZSZxdW90Oy4KKyBPdXQgb2Ygb2JsaWdhdGlvbiwgdGhpcyBsZXNzb24gd2lsbCBp bmNsdWRlIHRoZSB0cnV0aCB2YWx1ZSBhYnN0cmFjdG9yLCAnJ2plaScnLiBMZXQncyBzZWUgdGhl IGRlZmluaXRpb246PGJyIC8+JydfX2plaV9fJyc6IFRydXRoIGFic3RyYWN0aW9uOiB4MSBpcyB0 aGUgdHJ1dGggdmFsdWUgb2YgQlJJREkgdW5kZXIgZXBpc3RlbW9sb2d5IHgyPGJyIC8+JydqZWkn JyBpcyByYXJlbHkgdXNlZCwgbm90IGJlY2F1c2UgdHJ1dGggYWJzdHJhY3Rpb25zIGFyZSBpbmZy ZXF1ZW50bHkgbmVlZGVkLCBidXQgYmVjYXVzZSBtb3N0IGxvamJhbmlzdHMgdXNlIG90aGVyIG1l Y2hhbmlzbXMgdG8gb2J0YWluIHRoZW0uIFRoZSByZWFsIHVzZSBvZiAnJ2plaScnIGlzIHdoZW5l dmVyIGEgdHJ1dGggdmFsdWUgd2hpY2ggaXMgbm90ICZxdW90O3RydWUmcXVvdDsgb3IgJnF1b3Q7 ZmFsc2UmcXVvdDsgaXMgbmVlZGVkLCBpLmUuIHByYWN0aWNhbGx5IG5ldmVyLiBJJ2xsIGdpdmUg YSBjb3VwbGUgb2YgZXhhbXBsZXM6PGJyIC8+JydtaSBkaSdpIHBlbnNpIGxvIGplaSBtaSBtZXJr bycnIC0gJnF1b3Q7SSBvZnRlbiB0aGluayBhYm91dCB3aGV0aGVyIEkgYW0gQW1lcmljYW4gb3Ig bm90JnF1b3Q7IChjb250cmFzdCB3aXRoICZxdW90O0kgb2Z0ZW4gdGhpbmsgYWJvdXQgaG93IEFt ZXJpY2FuIEkgYW0mcXVvdDssIHdoaWNoIHVzZWQgYW4gYW1vdW50IGFic3RyYWN0aW9uLCBub3Qg YSB0cnV0aCB2YWx1ZSkuPGJyIC8+JydsaSBwaSBiaSBqZWkgbGEgdGluamluIGN1IG1pa2NlJycg LSAmcXVvdDtJdCdzIDgwJSB0cnVlIHRoYXQgVGluZGppbiBpcyBhIGRvY3RvciZxdW90OyAod2hh dGV2ZXIgdGhhdCBtaWdodCBtZWFuKQoKLSBUaGUgYWJzdHJhY3RvciAnJ25pJycgaXMgYSBncmVh dCB3YXkgdG8gZ2V0IHN0YXJ0ZWQgb24gdGhlIGNvbXBsaWNhdGVkIHdvcmQgJydjZSd1JycuPGJy IC8+X18nJ2NlJ3UnJ19fIFBzZXVkby1xdWFudGlmaWVyIGJpbmRpbmcgYSB2YXJpYWJsZSB3aXRo aW4gYW4gYWJzdHJhY3Rpb24gdGhhdCByZXByZXNlbnRzIGFuIG9wZW4gcGxhY2UuPGJyIC8+SSBh c3N1bWUgdGhlIGRlZmluaXRpb24gaXNuJ3QgdmVyeSBoZWxwZnVsLCBzbyBoZXJlJ3MgYSBmZXcg ZXhhbXBsZXMgdG8gc2VlIGl0IGluIHVzZTo8YnIgLz4gJydkbyBtbGVjYSBtaSBsbyBuaSBjZSd1 IHBhbnppIHpvJ2UnJyA9ICZxdW90O1lvdSBhcmUgbGVzcyB0aGFuIG1lIGluIHF1YW50aXR5OiBC ZWluZyBhIGNoaWxkIG9mIHNvbWVvbmUmcXVvdDsgPSAmcXVvdDtZb3UgYXJlIGxlc3Mgb2YgYSBj aGlsZCB0aGFuIEkgYW0mcXVvdDsgPGJyIC8+ICcnZG8gbWxlY2EgbWkgbG8gbmkgem8nZSBwYW56 aSBjZSd1JycgLSAmcXVvdDtZb3UgYXJlIGxlc3MgdGhhbiBtZSBpbiBxdWFudGl0eTogU29tZXRo aW5nIGJlaW5nIG9uZSdzIGNoaWxkJnF1b3Q7ID0gJnF1b3Q7WW91IGFyZSBsZXNzIG9mIGEgcGFy ZW50IHRoYW4gSSBhbSZxdW90OzxiciAvPkluIG90aGVyIHdvcmRzLCBmaWxsaW5nICcnY2UndScn IGluIGEgc3VtdGkgcGxhY2UgaW5zaWRlIGFuIGFic3RyYWN0aW9uIGFsbG93cyB0aGUgc3VtdGkg cGxhY2UgdG8gcmVtYWluICZxdW90O29wZW4mcXVvdDsgLSBub3QgZmlsbGVkIGJ5IGFueXRoaW5n LCBub3QgZXZlbiBhICcnem8nZScnLiBUaGlzIG9wZW4gcGxhY2UgaXMgcmVtbmlzY2llbnQgb2Yg dGhlICZxdW90O3gmcXVvdDtlcyBpbiB0aGUgbm9ybWFsIEVuZ2xpc2ggZGVmaW5pdGlvbnMgb2Yg bG9qYmFuaWMgc2VsYnJpIC0gc29tZXRoaW5nIF9fdG8gYmUgZmlsbGVkX18gYnkgYSBzdW10aS4g PGJyIC8+Rm9yIHRoZSByZWNvcmQsIHRoZSBqdWZyYSAnJ2NlJ3UgcGFuemkgem8nZScnIGluIHRo ZSBmaXJzdCBleGFtcGxlIGFjdHVhbGx5IHJlZmVycyB0byB0d28gZGlzdGluY3QgYnJpZGk6ICcn bWkgcGFuemkgem8nZScnIGFuZCAnJ2RvIHBhbnppIHpvJ2UnJy4gU2luY2UgdGhlc2UgdHdvIGJy aWRpIGFyZSBjb25zaWRlcmVkIGRpZmZlcmVudCwgdGhlICcnem8nZScnIG5lZWQgbm90IHJlZmVy IHRvIHRoZSBzYW1lIG9iamVjdC48YnIgLz5UaHVzLCBhbnkgYWJzdHJhY3Rpb24gd2l0aCBhICcn Y2UndScnIGluc2lkZSBpdCBpcyBhIHByZWRpY2F0ZSwgd2hlcmUgdGhlICcnY2UndScnLXBsYWNl cyBhcmUgZmlsbGFibGUuIFNpbmNlIHRoZSBhYnN0cmFjdG9ycyAnJ2thJycgYW5kICcnc2knbycn LCBpcyBhYm91dCAmcXVvdDtmaXR0aW5nIGEgcHJlZGljYXRlJnF1b3Q7LCBhbmQgc2luY2UgYSAn J2NlJ3UnJyBpcyBuZWVkZWQgdG8gdHJhbnNmb3JtIGFuIGFic3RyYWN0aW9uIGludG8gYSBwcmVk aWNhdGUsIGFsbCAnJ2thJycgYW5kICcnc2knbycnLWFic3RyYWN0aW9ucyBhbHdheXMgY29udGFp biBhdCBsZWFzdCBvbmUgJydjZSd1JycuIEEgJyduaScnLWFic3RyYWN0aW9uIGNhbiBjb250YWlu IGEgJydjZSd1JycsIGJ1dCBtYXkgYWxzbyBxdWFudGlmeSBhbiBhYnN0cmFjdGlvbiB3aXRoIGFs bCB0aGUgc3VtdGkgcGxhY2VzIGZpbGxlZCwgYXMgaW4gJydsaSBkdSdlIG5pIGRvIG5lbGNpIGxv IHZhbmp1JycuIDxiciAvPkluIHRoZSBhYnN0cmFjdGlvbnMgd2hlcmUgYSAnJ2NlJ3UnJyBpcyBw cmVzZW50LCBjYW4gdGhlIHBvc2l0aW9uIG9mIHRoZSAnJ2NlJ3UnJyBiZSBlbGlkZWQsIGJ1dCBp cyB0aGVuIG1vc3Qgb2Z0ZW4gYXNzdW1lZCB0byBiZSB0aGUgZmlyc3QgdW5maWxsZWQgc3VtdGkg cGxhY2UuIEluIHNvbWUgY29udGV4dHMsIGhvd2V2ZXIsIHRoZSAnJ2NlJ3UnJyBjYW4gYmUgYXNz dW1lZCB0byBiZSBzb21ld2hlcmUgZWxzZSwgYXMgZXhlbXBsaWZpZWQgd2l0aCAnJ21pIHptYWR1 IGRvIGxvIG5pIGxvIGJydW5hIGN1IGpib2NyZScnLCB3aGVyZSB0aGUgZWxpZGVkICcnY2UndScn IGlzIHByb2JhYmx5IGhpZGluZyBpbiAnJ2xvIGJydW5hIGJlIGNlJ3UnJy4KKyBUbyBjb25jbHVk ZSB0aGlzIGxlc3NvbiwgdGhlIGFic3RyYWN0b3IgJydzdSd1JycgaXMgYSB1bml2ZXJzYWwgYWJz dHJhY3Rvciwgd2hvc2UgeDIgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBob3cgdGhlIGFic3RyYWN0 aW9uIHNob3VsZCBiZSBjb25zaWRlcmVkIC0gZm9yIGV4YW1wbGUsIHdoaWNoIHR5cGUgdGhlIGFi c3RyYWN0aW9uIGlzLiBJdCBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQsIGJ1dCB3ZSBtaWdodCBh cyB3ZWxsIGRvIGl0IGFnYWluOjxiciAvPicnX19zdSd1X18nJzogVW5pdmVyc2FsIGFic3RyYWN0 b3IgeDEgaXMgdGhlIGFic3RyYWN0aW9uIG9uIEJSSURJIGNvbnNpZGVyZWQgYXMgeDIgLyB4MSBp cyB0aGUgYWJzdHJhY3Rpb24gb2YgQlJJREkgb2YgdHlwZSB4Mi48YnIgLz5UaGUgaWRlYSBvZiB0 aGlzIGFic3RyYWN0aW9uIGlzIGVhc3ksIHNvIEknbGwganVzdCBnaXZlIGEgZmV3IGV4YW1wbGVz IG9mIGl0IGluIHVzZSBhbmQgbGVhdmUgaXQgYXQgdGhhdDo8YnIgLz5UaGUgRW5nbGlzaCBwaHJh c2UgdGhhdCBJIGxvdmUgeW91IGlzIGRlZmluaXRlbHkgYSBzdW10aSwgc2luY2UgaXRzIG1lYW50 IHRvIGZ1bmN0aW9uIGFzIGEgc3ViamVjdCBvciBvYmplY3QgaW4gYSBzZW50ZW5jZS4gSXRzIGFs c28gY2xlYXJseSBtYWRlIGZyb20gYW4gYWJzdHJhY3Rpb24uIEl0IGNhbiB0aGVyZWZvcmUgYmUg dHJhbnNsYXRlZCAnJ2xvIHN1dSBtaSBkbyBwcmFtaScnLiBXaXRob3V0IHRoZSBjb250ZXh0IG9m IHRoZSBFbmdsaXNoIHNlbnRlbmNlLCB0aG91Z2gsIGl0cyBoYXJkIHRvIGd1ZXNzIHdoYXQga2lu ZCBvZiBhYnN0cmFjdGlvbiB3YXMgbWVhbnQuIEkgd2lsbCBkaWUgaGFwcHkgYnkgdGhlIHRpbWUg dGhhdCBJIGxvdmUgeW91LiB0cmVhdHMgdGhlIGFic3RyYWN0aW9uIGFzIGFuIGV2ZW50IGhhcHBl bmluZyBpbiB0aW1lLiBUaGUgdHJ1dGggaXMgdGhhdCBJIGxvdmUgeW91LiB0cmVhdHMgdGhlIGFi c3RyYWN0aW9uIGxpa2UgYSBicmlkaSwgd2hpY2ggY2FuIGJlIGNvbnNpZGVyZWQgdHJ1ZSBvciBm YWxzZS4gJnF1b3Q7WW91IGRvbid0IGtub3cgaG93IG11Y2ggSSBsb3ZlIHlvdSZxdW90OyB0cmVh dHMgdGhlIChhbG1vc3Qgc2FtZSkgYWJzdHJhY3Rpb24gYXMgYW4gYW1vdW50LiBVc2luZyB0aGUg c2Vjb25kIHN1bXRpIHBsYWNlIG9mIHN1dSwgdGhlc2UgY2FuIGJlIGV4cGxpY2l0bHkgZGlzdGlu Z3Vpc2hlZCBiZXR3ZWVuOjxiciAvPicnbG8gc3V1IG1pIGRvIHByYW1pIGtlaSBiZSBsbyBmYXNu dScnIGlzIGFuIGV2ZW50LjxiciAvPicnbG8gc3V1IG1pIGRvIHByYW1pIGtlaSBiZSBsbyBicmlk aScnIGlzIGEgYnJpZGkuPGJyIC8+JydsbyBzdXUgbWkgZG8gcHJhbWkga2VpIGJlIGxvIGtsYW5p JycgaXMgYW4gYW1vdW50LjxiciAvPlVzaW5nICcnc3V1JycgdGhpcyB3YXksIHRoZSBzZW1hbnRp YywgdGhvdWdoIG5vdCBncmFtbWF0aWNhbCwgcmFuZ2Ugb2YgYWxsIGFic3RyYWN0b3JzIGNhbiBi ZSBjb3ZlcmVkLiBNb3JlIHVzdWFsbHksIHRob3VnaCwgb3RoZXIgYWJzdHJhY3RvcnMgYXJlIHVz ZWQuPGJyIC8+RmluYWxseSwgbG9qYmFuaXN0cyBKb2huIENvd2FuIHRyYW5zbGF0ZWQgdGhlIHRp dGxlIG9mIHRoZSBib29rIFRoZSBDcnVjaWZpeGlvbiBvZiBKZXN1cyBDb25zaWRlcmVkIEFzIEEg RG93bmhpbGwgQmljeWNsZSBSYWNlIGFzICcnbG8gc3UndSBsYSAuaWVjdWFzLiBrdWN0YWkgc2Vs Y2F0cmEga2VpIGJlIGxvIHNhb3JkemlmYSdhIGtlIG5hbG1hdG1hJ2Ugc3V0eXRlcmp2aScnCgot IEV4YWN0bHkgaG93IHRoZSAnJ2NlJ3UnJydkIHBsYWNlcyBpbnNpZGUgYW4gYWJzdHJhY3Rpb24g cmVsYXRlcyB3aXRoIHRoZSBtYWluIGJyaWRpIGlzIHNwZWNpZmllZCBieSB0aGUgc2VsYnJpIG9m IHRoZSBtYWluIGJyaWRpLiBGb3IgJyd6bWFkdScnIGFuZCAnJ21sZWNhJycsIHRoZSAnJ2NlJ3Un JydkIHBsYWNlcyBhcmUgd2hhdCdzIHF1YW50aWZpZWQgYnkgdGhlIHNlbGJyaSBvZiB0aGUgbWFp biBicmlkaS4gVGhlIHJlbGF0aW9uIGlzIGFsbW9zdCBhbHdheXMgb2J2aW91cywgYnV0IGFzIHdl IHNoYWxsIHNlZSBsYXRlciwgdGhlcmUgaXMgb25lIGtpbmQgb2YgYWJzdHJhY3Rpb24sIHdob3Nl ICcnY2UndScnIGRvIG5vdCByZWxhdGUgdG8gdGhlIG1haW4gYnJpZGkgaW4gYW55IHN0cmFpZ2h0 Zm9yd2FyZCB3YXkuCgotIEJlZm9yZSB0aGF0LCB0aG91Z2gsIHlvdSBuZWVkIHRvIGxlYXJuIGFi b3V0ICcna2EnJyAtIHByb2JhYmx5IHRoZSBhYnN0cmFjdGlvbiB3aG9zZSB1bmRlcnN0YW5kaW5n IGhhcyBjaGFuZ2VkIHRoZSBtb3N0IHRoZSByZWNlbnQgeWVhcnMuIFlldCBhZ2FpbiBJIHJlbWlu ZCB5b3UgdGhhdCB0aGlzIHVuZGVyc3RhbmRpbmcgaXMgbm90IG9mZmljaWFsIExvamJhbiwgYnV0 IHJhdGhlciBhIHdpZGVzcHJlYWQgY3VycmVudCB1bmRlcnN0YW5kaW5nLiBMZXQncyBzZWUgdGhl IG9mZmljaWFsIGdsb3NzOjxiciAvPl9fJydrYScnX18gUHJvcGVydHkvcXVhbGl0eSBhYnN0cmFj dG9yICgtbmVzcyk7IHgxIGlzIHF1YWxpdHkvcHJvcGVydHkgZXhoaWJpdGVkIGJ5IEJSSURJLgor ICEhTG9qYmFuIExlc3NvbnMgLSBMZXNzb24gdGhpcnR5IChzZW1hbnRpY3Mgb2YgZnVuY3Rpb25z KTxiciAvPkZ1bmN0aW9ucyBhcmUgYSBncm91cCBvZiB0d28tdGhyZWUgdHlwZXMgb2YgYWJzdHJh Y3Rpb25zLiBUaGUgdGVybSdzIG5vdCBvZmZpY2lhbCwgYnV0IEknbGwgdXNlIGl0IGhlcmUgYW55 d2F5LjxiciAvPlRoZSBkZWZpbml0aW9uIG9mIGZ1bmN0aW9ucyBpcyBjbG9zZWx5IHJlbGF0ZWQg dG8gdGhlIGxpdHRsZSBuZWF0IHdvcmQgJydjZSd1JycuICcnY2UndScnIGlzIGEgc3Vta2EnaSB3 aGljaCBmaWxscyBvbmUgc3VtdGkgcGxhY2UuIEl0J3Mgb25seSBmb3VuZCB1c2FnZSBpbnNpZGUg YWJzdHJhY3Rpb25zIHdoaWNoIGFyZSBhbHNvIGZ1bmN0aW9ucy4gQWxsIGZ1bmN0aW9ucyBtdXN0 IGhhdmUgYXQgbGVhc3Qgb25lICcnY2UndScnIHNvbWV3aGVyZSBpbiB0aGUgYWJzdHJhY3Rpb24g LSB0aGF0J3Mgd2hhdCBtYWtlcyB0aGVtIGZ1bmN0aW9ucy4gVGhlICcnY2UndScnIGNhbiBiZSBl bGlkZWQsIGluIHdoaWNoIGNhc2UgaXQncyBtb3N0IG9mdGVuIGFzc3VtZWQgdG8gZmlsbCB0aGUg Zmlyc3QgZWxpZGVkIHN1bXRpIHBsYWNlIG9mIHRoZSBmdW5jdGlvbiwgdW5sZXNzIGNvbnRleHQg cHJvdmlkZXMgYSBtb3JlIHJlYXNvbmFibGUgYWx0ZXJuYXRpdmUuPGJyIC8+V2hhdCBkb2VzIGl0 IGFjdHVhbGx5IGRvPyBMZXQncyBoYXZlIGEgbG9vayBhdCBpdHMgZGVmaW5pdGlvbjo8YnIgLz4n J19fY2UndScnX186IFBzZXVkby1xdWFudGlmaWVyIGJpbmRpbmcgYSB2YXJpYWJsZSB3aXRoaW4g YW4gYWJzdHJhY3Rpb24gdGhhdCByZXByZXNlbnRzIGFuIG9wZW4gcGxhY2UuPGJyIC8+V2VsbCwg dGhhdCB3YXNuJ3QgdmVyeSBoZWxwZnVsLCBzbyBsZXQgbWUgdHJ5IGV4cGxhaW5pbmcgaXQgd2l0 aCBhbm90aGVyIGFwcHJvYWNoOjxiciAvPlB1dHRpbmcgJydjZSd1JycgaW4gYSBzdW10aSBwbGFj ZSBsZWF2ZXMgdGhlIHN1bXRpIHBsYWNlIGVtcHR5LiBUaGUgcGxhY2UgaXMgbm90IGVyYXNlZCwg bGlrZSBpZiB5b3UgZmlsbCBpdCB3aXRoICcnemknbycnLCBidXQgdGhlIHBsYWNlIGlzIG5vdCBm aWxsZWQgd2l0aCBhbnl0aGluZyAtIG5vdCBhIHNwZWNpZmljIHRoaW5nLCBub3QgYSAnJ3p1J2kn Jywgbm90IGEgICcnem8nZScnLCBub3RoaW5nLiBJbiB0aGF0IG1hbm5lciwgdGhlIGVtcHR5IHN1 bXRpIHBsYWNlcyBhcmUgcmVtbmlzY2llbnQgb2YgdGhlIHgxLCB4MiwgYW5kIHgzJ3Mgd2UgcHV0 IGluIHRoZSBzdW10aSBwbGFjZXMgb2YgRW5nbGlzaCBkZWZpbml0aW9ucyBvZiBicml2bGEgLSBt YXJraW5nICZxdW90O1RoaXMgaXMgd2hlcmUgc29tZXRoaW5nIGVsc2UgY2FuIGJlIHB1dCZxdW90 Oy48YnIgLz5UaHVzICcnbWkgY2l0a2EgbG8gdGkgYmFkbmEnJyBpcyAmcXVvdDtJIGVhdCB0aGlz IGJhbmFuYSZxdW90OywgYnV0PGJyIC8+JydtaSBjaXRrYSBjZSd1JycgaXMgJnF1b3Q7SSBlYXQg WCZxdW90Oy48YnIgLz5PZiBjb3Vyc2UsICZxdW90O0kgZWF0IFgmcXVvdDsgaXMgbWVhbmluZ2xl c3MgdW5sZXNzIHRoYXQgWCBpcyBmaWxsZWQgYnkgc29tZXRoaW5nLCBhbmQgaW5kZWVkIHRoZSBz ZW50ZW5jZSAnJ21pIGNpdGthIGNlJ3UnJyBpcyBzZW5zZWxlc3MgaW4gTG9qYmFuIGFzIHdlbGwu PGJyIC8+PGJyIC8+SW4gb3JkZXIgdG8gcHV0IGl0IHRvIHVzZSwgd2UgbmVlZCBhIGZ1bmN0aW9u IGFic3RyYWN0aW9uLiBXZSdsbCBiZWdpbiB3aXRoIHRoZSBtb3N0IG9mdGVuLXVzZWQ6IFRoZSBz ZWxicmkgYWJzdHJhY3Rpb24gJydrYScnLiBMZXQncyBzZWUgaXRzIG9mZmljaWFsIGdsb3NzOjxi ciAvPicnX19rYV9fJycgUHJvcGVydHkvcXVhbGl0eSBhYnN0cmFjdG9yICgtbmVzcyk7IHgxIGlz IHF1YWxpdHkvcHJvcGVydHkgZXhoaWJpdGVkIGJ5IEJSSURJLgpVbmRlciB0aGUgdW5kZXJzdGFu ZGluZyB3aGljaCBJIHdpbGwgdGVhY2gsIHRoaXMgZ2xvc3MgaXMgbWlsZGx5IG1pc2xlYWRpbmcu IEluc3RlYWQsICcna2EnJyBzaG91bGQgcHJvYmFibHkgYmUgZ2xvc3NlZCBzdWNoOgotIF9fJydr YScnX18gUHJlZGljYXRlIGFic3RyYWN0b3I6IHgxIGlzIHRoZSBwcmVkaWNhdGUgb2YgQlJJREkg W25lZWRzIGF0IGxlYXN0IG9uZSBvcGVuIHZhcmlhYmxlXTxiciAvPk11Y2ggbGlrZSBhICcnbmkn Jy1hYnN0cmFjdGlvbiwgYSAnJ2thJyctYWJzdHJhY3Rpb24gaXMgYSBwcmVkaWNhdGUgYW5kIHRo ZXJlZm9yZSBuZWVkcyBhdCBsZWFzdCBvbmUgJydjZSd1JycsIG9mdGVuIGVsaWRlZC4gVGhlIGRp ZmZlcmVuY2UgaXMgcHVyZWx5IHNlbWFudGljOiAnJ25pJycgZm9jdXNlcyBvbiBob3cgbXVjaCBh IGNlcnRhaW4gc3VtdGkgZml0cyBhIHByZWRpY2F0ZSwgd2hlcmVhcyBhICcna2EnJy1hYnN0cmFj dGlvbiBpcyB0aGUgcHJlZGljYXRlIGl0c2VsZi4gTGlrZSB3aXRoICcnbmknJywgaG93IHRoZSAn J2NlJ3UnJ3Mgb2YgJydrYScnIHJlbGF0ZXMgdG8gdGhlIG1haW4gYnJpZGkgaXMgZGVmaW5lZCBi eSB0aGUgc2VsYnJpIG9mIHRoZSBtYWluIGJyaWRpLiA8YnIgLz5VbmRlciB0aGlzIGludGVycHJl dGF0aW9uLCAnJ2thJyctYWJzdHJhY3Rpb25zIGZpbGxzIG1vc3Qgb2YgdGhlIHN1bXRpIHBsYWNl cyB3aGljaCBzb21ldGhpbmcgaXMgZG9pbmcgb3IgYmVpbmcuIEV4YW1wbGVzIGFyZSBhbHdheXMg Z29vZDo8YnIgLz4nJ21pIGtha25lIGxvIGthICcnIFtjZSd1XSAnJ2JhanJhIGZpIGxvIG1pIGJp cmthJycgLSAmcXVvdDtJIGNhbiBydW4gb24gbXkgYXJtcyZxdW90OzxiciAvPk9mIGNvdXJzZSwg c2V2ZXJhbCAnJ2NlJ3UnJyBjYW4gYmUgdXNlZCB3aXRoaW4gYSAnJ2thJyctYWJzdHJhY3Rpb24u IFdoYXQgZG9lcyB0aGUgZm9sbG93aW5nIHNlbnRlbmNlIG1lYW4/PGJyIC8+JydtaSBsbyBwYW1w ZSdvIGN1IHNpbXh1IGxvIGthIGNlJ3UgY2UndSBnbGV0dScnIAorICcna2EnJyBQcmVkaWNhdGUv c2VsYnJpIGFic3RyYWN0b3I6IHgxIGlzIHRoZSBwcmVkaWNhdGUvc2VsYnJpIG9mIEJSSURJIChu ZWVkcyBhdCBsZWFzdCBvbmUgb3BlbiB2YXJpYWJsZSBpLmUgYSBjZSd1KTxiciAvPlVzaW5nIGEg c2VsYnJpIGFic3RyYXRpb24sICZxdW90O0kgZWF0IFgmcXVvdDsgY2FuIG1ha2Ugc2Vuc2UsIGFz IGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZTo8YnIgLz4nJ19fY2thamlfXycnIHgxIGlzIGNoYXJh Y3Rlcml6ZWQgYnkgc2VsYnJpIHgyPGJyIC8+JydsbyB0aSBiYWRuYSBjdSBja2FqaSBsbyBrYSBt aSBjaXRrYSBjZSd1JycgLSAmcXVvdDtUaGlzIGJhbmFuYSBpcyBjaGFyYWN0ZXJ0aXplZCBieSB0 aGUgc2VsYnJpOiAmcXVvdDtJIGVhdCBYJnF1b3Q7JnF1b3Q7LCB3aGljaCBtYXkgYmUgcmVwcmFz ZWQgYXMgJnF1b3Q7VGhpcyBiYW5hbmEgZml0cyB0aGUgc2VsYnJpOiAmcXVvdDtCZWluZyBlYXRl biBieSBtZSZxdW90OyZxdW90Oywgd2hpY2ggaXMgb2YgY291cnNlIGVxdWl2YWxlbnQgdG8gJydt aSBjaXRrYSBsbyB0aSBiYWRuYScnIC0gJnF1b3Q7SSBlYXQgdGhpcyBiYW5hbmEmcXVvdDsuPGJy IC8+Rm9yIHRoZSBzdGF0ZW1lbnQgdG8gbWFrZSBzZW5zZSwgdGhlIHN1bXRpIHBsYWNlIGhlbGQg b3BlbiBieSAnJ2NlJ3UnJyBtdXN0IGJlIGZpbGxlZCBieSBzb21ldGhpbmcuIFRoZSBtYWluIHNl bGJyaSBvZiB0aGUgc3RhdGVtZW50LCBpbiB0aGlzIGNhc2UgJydja2FqaScnLCBnaXZlcyB1cyBh IGNsdWUgaG93IHRvIGZpbGwgdGhlIG9wZW4gc3VtdGkgcGxhY2UuIFN1Y2ggc2VsYnJpIGFsbW9z dCBhbHdheXMgZmlsbCBpdCB3aXRoIGEgc3VtdGkgZnJvbSB0aGUgbWFpbiBzZWxicmkuIEhvdyAn J2NlJ3UnJyBpcyBnaXZlbiBhIG5vbi16ZXJvIHZhbHVlIGhhcyBiZWVuIGEgc3ViamVjdCBvZiBt aW5vciBkZWJhdGUgaW4gTG9qYmFuaXN0YW4sIGJ1dCB0aGUgaXNzdWUgaXMgbW9yZSBvciBsZXNz IHNldHRsZWQ6ICcnY2UndScnIGtlZXBzIGEgc3VtdGkgcGxhY2Ugb3BlbiwgYW5kIHRoZSBtYWlu IHNlbGJyaSB0aGVuIGZpbGxzIGl0IHdpdGggc29tZXRoaW5nLjxiciAvPjxiciAvPlRob3VnaCBp dCBvZnRlbiBpcywgdGhlICcnY2UndScnIHBsYWNlIG5lZWQgbm90IGJlIGZpbGxlZCBieSB0aGUg c2VsYnJpIGluIG9yZGVyIGZvciB0aGUgYWJzdHJhY3Rpb24gdG8gbWFrZSBzZW5zZTogT24gaXRz IG93biwgJydsbyBrYSBjZSd1IHRlIHZlY251IGxvIGZpbnBlJycgbWVhbnM6ICZxdW90O2J1eWlu ZyBhIGZpc2gmcXVvdDssIG9yICZxdW90O3RvIGJ1eSBhIGZpc2gmcXVvdDs8YnIgLz4nJ2xvIHNl IGxpc3JpIGN1IHNyYW5hIGxvIGthIGNlJ3UgdGUgdmVjbnUgbG8gZmlucGUnJyAtICZxdW90O1Ro ZSBwbG90IGlzIGFib3V0IGJ1eWluZyBhIGZpc2gmcXVvdDsuIEhlcmUsICcnc3JhbmEnJyBkb2Vz IG5vdCBhcHBseSBhbnl0aGluZyB0byB0aGUgJydjZSd1JyctcGxhY2UsIGFuZCB0aGUgYWJzdHJh Y3Rpb24gaXMgaW5zdGVhZCBzZWVuIGFzIHRoZSBzZWxicmkgb24gaXRzIG93bi48YnIgLz48YnIg Lz5BbiBhbHRlcm5hdGl2ZSB3YXkgb2YgZXhwbGFpbmluZyAnJ2NlJ3UnJyBpcyBieSByZWdhcmRp bmcgdGhlbSBhcyB2YXJpYWJsZXMgaW4gYSBsYW1iZGEgZnVuY3Rpb24uIEZvciBpbnN0YW5jZSwg Y29uc2lkZXIgdGhlIHNlbnRlbmNlOjxiciAvPicnbGEgLmFsaXMuIGN1IGRqaWNhIGxvIGthIGNl J3UgdGUgdmVjbnUgbG8gZmlucGUnJyAtICZxdW90O0FsaWNlIHdhbnRzIHRoYXQgQWxpY2UgYnV5 cyBhIGZpc2gmcXVvdDs8YnIgLz5IZXJlLCB0aGUgZmlyc3QgYXJndW1lbnQgb2YgJydkamljYScn IGlzIHRoZSBvbmUgd2hvIHdhbnRzIHNvbWV0aGluZywgbmFtZWx5IEFsaWNlLiBUaGUgc2Vjb25k IGFyZ3VtZW50IGlzIHRoZSBzZWxicmkgdGhhdCBBbGljZSB3YW50cyB0byBmdWxmaWxsOiBCdXlp bmcgYSBmaXNoLjxiciAvPldlIGNhbiB2aWV3ICcnY2UndScnIGFzIGEgZnJlZSB2YXJpYWJsZSwg d2hpY2ggdGhlbiBiZWNvbWVzIGJvdW5kIGJ5IGEgbGFtYmRhIGFic3RyYWN0aW9uLCBuYW1lbHkg JydrYScnLiAgTm93LCAnJ2thIGNlJ3UgdGVydmUndSBsbyBmaW5wZScnIGNhbiBiZSBzZWVuIGFz IGEgbGFtYmRhIGZ1bmN0aW9uOjxiciAvPiAgICBcIHggLSZndDsgdGUgdmVjbnUoeCxsbyBmaW5w ZSx6bydlLHpvJ2UpLDxiciAvPmFuZCBpbiB0aGlzIGNhc2UgJydkamljYScnIHN1cHBsaWVzIHRo ZSBsYW1iZGEgZnVuY3Rpb24gd2l0aCBBbGljZS48YnIgLz48YnIgLz5MYW1iZGFzIGNhbiBiZSBz dG9yZWQgdG8gYWxsb3dpbmcgdG8gcGFzcyB0aGVtIGFyb3VuZCBhbmQgdXNlIHRoZW0gaW4gdmFy aW91cyBzaXR1YXRpb25zOjxiciAvPicnY2EnZSB6bydlIGdvaSBrbydhIGthIGNlJ3UgZGFuc3Ug LmkgbWkga28nYSBja2FqaSAuaSBkbyBrbydhIGRqaWNhIC5pIG1hJ2Ega28nYSBrYWtuZScnICAt ICZxdW90O0kgZGVmaW5lOiBUaGF0IGtvJ2EgaXMgc29tZSBwcm9wZXJ0eSB3aGljaCBtZWFucyAm cXVvdDt0byBkYW5jZSZxdW90Oy4gSSBhbSBkb2luZyBpdC4gWW91IHdhbnQgaXQuIEV2ZXJ5b25l IGNhbiBkbyBpdCZxdW90OzxiciAvPjxiciAvPlVzaW5nICcna2EnJywgd2UgY2FuIGNvcnJlY3Rs eSBwaHJhc2UgJnF1b3Q7SSBjYW4gcnVuIG9uIG15IGFybXMmcXVvdDsuIEhvdz88YnIgLz5BbnN3 ZXI6IH5+Z3JleSxncmV5Om1pIGtha25lIGxvIGthIHtjZSd1fSBiYWpyYSBmaSBsbyBtaSBiaXJr YX5+PGJyIC8+PGJyIC8+QSBsb3Qgb2Ygb2Z0ZW4tdXNlZCBnaXNtdSB0YWtlcyBzZWxicmkgYXMg b25lIG9mIHRoZWlyIHN1bXRpLCB3aGljaCBtZWFucyAnJ2xvIGthJycgaXMgdXNlZCBxdWl0ZSBv ZnRlbi4gQSBmZXcgbm90YWJsZSBleGFtcGxlcyBhcmUgJyd0cm9jaScnLCAnJ2tha25lJycsICcn ZGppY2EnJywgJyd6dWt0ZScnLCAnJ3NuYWRhJycsICcnZnJheHUnJzo8YnIgLz4nJ2xvIGthc2xp IG5hIGtha25lIGxvIGthIHNpbGN1IGxhJ2UgbGEnb2kgWC1maWxlcycnIC0gJnF1b3Q7VGhlIGRv bmtleSBjYW5ub3Qgd2hpc3RsZSB0aGUgWC1maWxlcyBzb25nJnF1b3Q7PGJyIC8+PGJyIC8+Jycu ZSdvIGtvIGxvIGphaSBzZSB6Z2lrZSBjdSBmcmF4dSBsbyBrYSBkYXJ4aSBsbyBkYW1yaSBjYSBs byBudSBkbyBzaXBuYScnIC0gJnF1b3Q7UGxlYXNlIGZvcmdpdmUgdGhlIG11c2ljaWFuIGZvciBz dHJpa2luZyB0aGUgZHJ1bSB3aGVuIHlvdSB3ZXJlIHNsZWVwaW5nISZxdW90OzxiciAvPjxiciAv PkF0IGxlYXN0IG9uZSBzZWxicmkgY2FuIGZpbGwgdHdvICcnY2UndScnIHdpdGhpbiBhIGthLWFi c3RyYWN0aW9uLiBXaGF0IGRvZXMgdGhlIGZvbGxvd2luZyBqdWZyYSBtZWFuPzxiciAvPjxiciAv PicnbWkgbG8gcGFtcGUnbyBjdSBzaW14dSBsbyBrYSB7Y2UndSBjZSd1fSBnbGV0dScnCkFuc3dl cjogfn5ncmV5LGdyZXk6JydNZSBhbmQgbXkgbG92ZXIgaGF2ZSBzZXggd2l0aCBlYWNoIG90aGVy IG11dHVhbGx5In5+CgotIFRoZSBsYXN0IG9mIHRoZSBhYnN0cmFjdG9ycyB3ZSB0cmVhdCBoZXJl IGlzICcnc2knbycnLiBMaWtlICcna2EnJywgaXRzIGRlZmluaXRpb24gYXMgaXQgd2lsbCBiZSB0 YXVnaHQgaGVyZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb2ZmaWNpYWwgZGVmaW5pdGlvbi4gRXR5 bW9sb2dpY2FsbHksICcnc2knbycnIGRlcml2ZXMgZnJvbSAnJ3NpZGJvJycsICZxdW90O2lkZWEm cXVvdDssIGFuZCB0aGUgb2ZmaWNpYWwgZ2xvc3Mgb2YgJydzaSdvJycgcmVmbGVjdHMgdGhpczo8 YnIgLz5fXycnc2knbycnX186IElkZWEvY29uY2VwdCBhYnN0cmFjdG9yOyB4MSBpcyB4MidzIGNv bmNlcHQgb2YgQlJJREkuPGJyIC8+VW5kZXIgdGhlIGN1cnJlbnQgdXNhZ2Ugd2hpY2ggSSB3aWxs IHVzZSBhcyBzdGFuZGFyZCwgYSAnJ3NpJ28nJy1hYnN0cmFjdGlvbiBpcyBsaWtlIGEgJydrYScn LWFic3RyYWN0aW9uLCBidXQgd2l0aCB0d28gaW1wb3J0YW50IGRpZmZlcmVuY2VzLiA8YnIgLz5G aXJzdGx5LCBhICcnc2knbycnLWFic3RyYWN0aW9uIGhhcyBhbGwgaXRzIHN1bXRpIHBsYWNlcyBm aWxsZWQgd2l0aCAnJ2NlJ3UnJyBieSBkZWZhdWx0LCB0aGVyZWJ5IGJlaW5nIHJlbGF0ZWQgbGVz cyB0byBhIHNwZWNpZmljIHNpdHVhdGlvbiwgYW5kIG1vcmUgdG8gYSBnZW5lcmFsIHNpdHVhdGlv bi4gPGJyIC8+U2Vjb25kbHksIHRoZXJlIGlzIG5vdCBuZWNlc3NhcmlseSBhbnkgcmVsYXRpb24g YmV0d2VlbiB0aGUgJydjZSd1JycgaW5zaWRlIHRoZSAnJ3NpJ28nJy1hYnN0cmFjdGlvbiBhbmQg dGhlIHN1bXRpIG9mIHRoZSBtYWluIGJyaWRpLCBhbmQgdGhlcmVmb3JlIHRoZSBtYWluIHNlbGJy aSBkb2VzIG5vdCBkZWZpbmUgdGhpcyByZWxhdGlvbi48YnIgLz5JbiBvcmRlciB0byBleHBsYWlu IG1vcmUgaW50dWl0aXZlbHkgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiAnJ2thJycgYW5kICcnc2kn bycnLCBjb25zaWRlciB0aGUgZm9sbG93aW5nICB0d28gYnJpZGk6PGJyIC8+JydtaSBuZWxjaSBs byBrYSBjZSd1IGNyaW5vJycsIHdoZXJlIHRoZSAnJ2NlJ3UnJyByZWZlcnMgdG8gYSBzdW10aSBp biB0aGUgb3V0ZXIgYnJpZGksIG5hbWVseSAnJ21pJycsIHRodXMgbWVhbmluZzogJnF1b3Q7SSBs aWtlIGJlaW5nIGdyZWVuJnF1b3Q7LCB2ZXJzdXM8YnIgLz4nJ21pIG5lbGNpIGxvIHNpJ28gY2Un dSBjcmlubycnLCB3aGVyZSB0aGUgJydjZSd1JycgcmVtYWlucyBjb21wbGV0ZWx5IGFic3RyYWN0 LCBtYWtpbmcgdGhlIGJyaWRpIG1lYW46ICZxdW90O0kgbGlrZSBncmVlbm5lc3MmcXVvdDsKKyBP ZiBjb3Vyc2UsIHRoZSAnJ2NlJ3UnJyBuZWVkIG5vdCBiZSBwbGFjZWQgaW4gdGhlIGJlZ2lubmlu ZyBvZiB0aGUgJydrYScnLWFic3RyYWN0aW9uLiBPbmUgY291bGQgdmVyeSB3ZWxsIHNwZWFrIG9m PGJyIC8+JydsbyBrYSBsYSAuYmFiLiBtZWxiaSBjZSd1JycgLSAmcXVvdDtUaGUgc2VsYnJpIG9m OiAmcXVvdDtCb2IgaXMgYmVhdXRpZnVsIGFjY29yZGluZyB0byBYJnF1b3Q7JnF1b3Q7LCBvciBp biBvdGhlciB3b3JkczogJnF1b3Q7VGhpbmtpbmcgdGhhdCBCb2IgaXMgYmVhdXRpZnVsJnF1b3Q7 LjxiciAvPkluZGVlZCwgbW92aW5nIHRoZSAnJ2NlJ3UnJyBhcm91bmQgaW4gYW4gZnVuY3Rpb24g Y3JlYXRlcyB2ZXJ5IGRpZmZlcmVudCBtZWFuaW5nczo8YnIgLz4nJ2xvIGthIGNlJ3UgcGFuemkg bGEgLmFsaXMuJycgLSAmcXVvdDtUaGUgc2VsYnJpOiAmcXVvdDtYIGlzIGEgY2hpbGQgb2YgQWxp Y2UmcXVvdDsmcXVvdDsgPSAmcXVvdDtCZWluZyBBbGljZSdzIGNoaWxkJnF1b3Q7LCB2ZXJzdXM8 YnIgLz4nJ2xvIGthIGxhIC5hbGlzLiBwYW56aSBjZSd1JycgLSAmcXVvdDtUaGUgc2VsYnJpOiAm cXVvdDtBbGljZSBpcyBhIGNoaWxkIG9mIFgmcXVvdDsmcXVvdDsgPSAmcXVvdDtCZWluZyB0aGUg cGFyZW50IG9mIEFsaWNlJnF1b3Q7LjxiciAvPk9uZSBjb3VsZCBldmVuIGltYWdpbmUgYSBzdGF0 ZW1lbnQgaW4gd2hlcmUgdGhlICcnY2UndScnIGlzIHBsYWNlZCBpbiBhIHZlcnkgdW5jb252ZW50 aW9uYWwgcGxhY2U6PGJyIC8+JydtaSAuZSBuYWkgZG8gY2thamkgbG8ga2EgbG8gYnJ1bmEgY3Ug amJvY3JlJycsIHdoZXJlaW4gdGhlICcnY2UndScnIGlzIGVsaWRlZCwgYnV0IG1vc3QgcHJvYmFi bHkgaGlkaW5nIGluICcnbG8gYnJ1bmEgYmUgY2UndScnLCB0aGVyZWZvcmUgbWVhbmluZyAmcXVv dDtJIGFuZCBub3QgeW91IGlzIGNoYXJhY3Rlcml6ZWQgYnkgdGhlIHNlbGJyaTogJnF1b3Q7VGhl IGJyb3RoZXIgb2YgWCBpcyBnb29kIGEgTG9qYmFuJnF1b3Q7JnF1b3Q7LCB3aGljaCBpcyB0aGUg c2FtZSBhcyAmcXVvdDtJIGhhdmUgYSBicm90aGVyIHdobydzIGdvb2QgYXQgTG9qYmFuLCBidXQg eW91IGRvbid0JnF1b3Q7LjxiciAvPjxiciAvPk9uZSBjYW4gbWFrZSBhIGZ1bmN0aW9uLCBsaWtl IGEga2EtYWJzdHJhY3Rpb24sIGFuZCBmaWxsIGFsbCBzdW10aSBwbGFjZXMsIGxlYXZpbmcgbm8g cGxhY2UgZm9yIGEgJydjZSd1JycuIFRoZSByZXN1bHRpbmcgYnJpZGkgYXJlIHdlaXJkOjxiciAv PicnbWkga2FrbmUgbG8ga2EgbWkgbWVya28gbG8gbWkgYmFuZ3UnJyAtICZxdW90O0kgY2FuIG15 IGxhbmd1YWdlIGlzIEFtZXJpY2FuJnF1b3Q7LiBUaGlzIGlzIGNsZWFybHkgYSB0eXBlIGVycm9y LiBTb21lIHBlb3BsZSByZWdhcmQgZnVuY3Rpb25zIHdpdGhvdXQgYW55ICcnY2UndScnIHRvIGJl IGVxdWl2YWxlbnQgdG8gYnJpZGkgYWJzdHJhY3Rpb25zLCBzbyB0aGF0PGJyIC8+JydtaSBrcmlj aSBsbyBrYSBtaSB2cnVkZSBsYSBjZXZuaScnIGlzIHRoZSBzYW1lIGFzICcnbWkga3JpY2kgbG8g ZHUndSBtaSB2cnVkZSBsYSBjZXZuaScnIC0gJnF1b3Q7SSBiZWxpZXZlIHRoYXQgSSBhbSBnb29k IGluIHRoZSBleWVzIG9mIEdvZCZxdW90OywgYW5kIGlzIGp1c3QgYXMgZ29vZCBhIHNlbnRlbmNl IGluIExvamJhbiBhcyBpdHMgdHJhbnNsYXRpb24gaXMgaW4gRW5nbGlzaC4gSW4gbXkgb3Bpbmlv biwgb25lIHNob3VsZCByZWZyYWluIGZyb20gdXNpbmcgYW55IG9mIHRoZSBmdW5jdGlvbiBhYnN0 cmFjdG9ycyBpZiBvbmUgZG9lc24ndCB3YW50IHRvIHVzZSBhIGZ1bmN0aW9uLiBJZiB5b3Ugd2Fu bmEgdXNlICcnZHUndScnLCB1c2UgJydkdSd1JycuPGJyIC8+PGJyIC8+VGhlIG90aGVyIGFic3Ry YWN0b3Igd2hpY2ggY2xlYXJseSBjYW4gcHJvdmlkZSBhIGZ1bmN0aW9uIGlzICcnbmknJy4gTGlr ZSAnJ2thJycsIGEgJydjZSd1JycgY2FuIGJlIHBsYWNlZCBpbiBhICcnbmknJyBhYnN0cmFjdGlv biwgYnV0IGl0J3Mgbm90IG1hbmRhdG9yeS4gVGh1cywgaWYgbm8gJydjZSd1JycgaXMgcGxhY2Vk IGluIGEgJyduaScnLWFic3RyYWN0aW9uLCBvbmUgY2Fubm90IGFzc3VtZSB0aGF0IGl0J3MgZWxp ZGVkIC0gaXQgbWlnaHQgc2ltcGx5IG5vdCBiZSB0aGVyZS4gSWYgdGhlIG1haW4gc2VsYnJpIGlz IG5vdCBvbmUgd2hpY2ggY2xlYXJseSBuZWVkcyB0byBmaWxsIGEgJydjZSd1JyctcGxhY2UsIGxp a2UgJyd6bWFkdScnIGFuZCAnJ21sZWNhJycsIHRoZXJlJ3MgcHJvYmFibHkgbm8gJydjZSd1Jycg YXQgYWxsLjxiciAvPkluIGFsbCBvdGhlciBhc3BlY3RzLCB0aGUgd2F5ICcnY2UndScnIHdvcmtz IHdpdGhpbiB0aGUgYWJzdHJhY3Rpb24gaXMganVzdCBsaWtlICcna2EnJywgc28gdGhlIGRpZmZl cmVuY2UgaXMgcHVyZWx5IHNlbWFudGljYWwuIFdoZXJlYXMgJydrYScnIGNyZWF0ZXMgYSBzZWxi cmksICcnbmknJyBjcmVhdGVzIGFuIGFtb3VudC4gSGVyZSdzIHRoZSBkZWZpbml0aW9uIG9mIHRo ZSB3b3JkOjxiciAvPjxiciAvPl9fJyduaScnX186IEFtb3VudCBhYnN0cmFjdGlvbjogeDEgaXMg dGhlIGFtb3VudCBvZiBCUklESSBvbiB0aGUgc2NhbGUgeDI8YnIgLz5CZWluZyBmYW1pbGlhciB3 aXRoICcna2EnJywgaXRzIHVzYWdlIHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQ6PGJyIC8+Jydt aSB6bWFkdSBkbyBsbyBuaSB7Y2UndX0geGVrcmknJyAtICZxdW90O0kgZXhjZWVkIHlvdSBpbiBh bW91bnQ6ICZxdW90O1ggaXMgYmxhY2smcXVvdDssIG9yOiAmcXVvdDtJJ20gYmxhY2tlciB0aGFu IHlvdS4mcXVvdDsgQXMgc3RhdGVkIGluIGxlc3NvbiB0d2VudHktZWlnaHQsIHRoaXMgbWFrZXMg dG90YWwgc2Vuc2UgYmVjYXVzZSB0aGUgYnJpZ2h0bmVzcyBvZiBvdXIgc2tpbiBjb3VsZCBiZSBt ZWFzdXJlZCBieSBhIGNhbWVyYS4gSG93ZXZlciwgc29tZSBwZW9wbGUgd2lsbCBub3QgYWNjZXB0 OjxiciAvPicnbGUgbmkgbWkgcGVuZG8gZG8nJyAtICZxdW90O0hvdyBtdWNoIHdlIGFyZSBmcmll bmRzJnF1b3Q7LiBJIHRoaW5rIHVzaW5nIGFtb3VudHMgaW4gdGhpcyB3YXkgaXMgZmluZSwgYnV0 IHRoYXQgaXMgYW4gaXNzdWUgb2YgYSBwaGlsb3NvcGhpY2FsIGRlYmF0ZSBJIHN3ZXB0IHVuZGVy IHRoZSBjYXJwZXQgdHdvIGxlc3NvbnMgYWdvLCBhbmQgSSdtIG5vdCBnb25uYSB0YWtlIGl0IG9u IGhlcmUuPGJyIC8+PGJyIC8+SXQncyBhYnNvbHV0ZWx5IGNsZWFyLCBob3dldmVyLCB0aGF0IGl0 J3Mgd3JvbmcgdG8gdXNlICcnbmknJyBhcyBhIHdheSB0byBlbnVtZXJhdGUgaG93IG1hbnkgb2Jq ZWN0cyBmaXQgYSBzZWxicmkgLSBpdCdzIGFsd2F5cyBhYm91dCB0byB3aGljaCBleHRlbnQgY2Vy dGFpbiBzdW10aSBmaXQgYSBzZWxicmkuIFRodXM6IDxiciAvPicnZG8gbWxlY2EgbWkgbG8gbmkg cGFuemkgY2UndScnIG1lYW5zICZxdW90O1lvdSBhcmUgbGVzcyBvZiBhIHBhcmVudCB0aGFuIEkg YW0mcXVvdDssIGFuZCBub3QgJnF1b3Q7WW91IGhhdmUgZmV3ZXIgY2hpbGRyZW4gdGhhbiBtZSZx dW90Oy48YnIgLz5JbiBjYXNlIHlvdSdyZSBjdXJpb3VzIChJIHdhcyksIHRoZSBqdWZyYSAnJ3pv J2UgcGFuemkgY2UndScnIGluIHRoZSBwcmV2aW91cyBleGFtcGxlIGFjdHVhbGx5IHJlZmVycyB0 byB0d28gZGlzdGluY3QgYnJpZGksIGJlY2F1c2UgdGhlIHNlbGJyaSBmaWxscyB0aGUgb3BlbiAn J2NlJ3UnJy1wbGFjZSB0d2ljZSwgb25jZSBmb3IgJydkbycnLCBhbmQgb25jZSBmb3IgJydtaScn LCBtYWtpbmcgdGhlIHR3byBzdWItYnJpZGk6ICcnem8nZSBwYW56aSBkbycnIGFuZCAnJ3pvJ2Ug cGFuemkgbWknJy4gU2luY2UgdGhlc2UgdHdvIGJyaWRpIGFyZSBjb25zaWRlcmVkIGRpZmZlcmVu dCwgdGhlICcnem8nZScnIG5lZWQgbm90IHJlZmVyIHRvIHRoZSBzYW1lIG9iamVjdC48YnIgLz48 YnIgLz5XaGF0IGRvZXMgaXQgbWVhbiBpZiB5b3UgZG9uJ3QgdXNlIGEgJydjZSd1JycgaW5zaWRl IGEgJyduaScnLWFic3RyYWN0aW9uPyBXZWxsLCB0aGVuIHRoZSBtYWluIHNlbGJyaSBjYW4ndCBm aWxsIGFueSBvZiB0aGUgc3VtdGkgaW4gdGhlIGFic3RyYWN0aW9uLCBzbyB0aGVyZSdzIGEgZ29v ZCBjaGFuY2UgaXQgd29uJ3QgbWFrZSBhbnkgc2Vuc2UsIGp1c3QgbGlrZSAnJ2thJyctYWJzdHJh Y3Rpb25zLiBIb3dldmVyLCBpZiAnJ25pJycgaXRzZWxmIGlzIHRoZSBtYWluIHNlbGJyaSwgaXQn cyB0b3RhbGx5IGZpbmUgdG8gYXZvaWQgdXNpbmcgYW55ICcnY2UndScnIGF0IGFsbDo8YnIgLz4n J2xpIGR1J2UgbmkgZG8gbmVsY2kgbG8gdmFuanUnJyAtICZxdW90O1lvdSBsaWtlIHdpbmUgdG9v IG11Y2gmcXVvdDsuPGJyIC8+PGJyIC8+VGhlIGxhc3Qgb2YgdGhlIGFic3RyYWN0b3JzIHdlIHRy ZWF0IGluIHRoaXMgbGVzc29uIGlzICcnc2knbycnLCB0aGUgY29uY2VwdCBhYnN0cmFjdG9yLiAn J3NpJ28nJyBtYXkgYmUgY29uc2lkZXJlZCBhIGZ1bmN0aW9uLCBvciBpdCBtYXkgbm90IGJlIGNv bnNpZGVyZWQgYSBmdW5jdGlvbi4gQSAnJ3NpJ28nJy1hYnN0cmFjdGlvbiBjZXJ0YWlubHkgY29u dGFpbnMgYSAnJ2NlJ3UnJyAtIGluIGZhY3QsIHVuZGVyIHRoZSB1bmRlcnN0YW5kaW5nIHdoaWNo IEkgYW0gdGVhY2hpbmcsIGEgJydzaSdvJyctYWJzdHJhY3Rpb24gYWx3YXlzIGNvbnRhaW5zIG5v dGhpbmcgYnV0ICcnY2UndScncyEgVGhlc2UgJydjZSd1JydzLCB1bmxpa2UgdGhvc2Ugb2YgJydr YScnIG9yICcnbmknJywgcmVtYWluIG9wZW4gYW5kIGNhbm5vdCBiZSBmaWxsZWQgYnkgYW55IHNl bGJyaS4gSW4gb3RoZXIgd29yZHMsIHRoZSBmdW5jdGlvbiBjYW5ub3QgYmUgYXBwbGllZCB0byBh bnl0aGluZywgd2hpY2ggaXMgd2hhdCBtYWtlcyBpdCBhIG1heWJlLWZ1bmN0aW9uLjxiciAvPicn X19zaSdvX18nJyBDb25jZXB0IGFic3RyYWN0b3I6IHgxIGlzIHgyJ3MgY29uY2VwdCBvZiBCUklE STxiciAvPkxldCdzIGhhdmUgYSBmZXcgZXhhbXBsZXM6PGJyIC8+JydsbyBzaSdvIHhlYm5pJycs IHdoaWNoLCBiZWNhdXNlIGFsbCB0aGUgc3VtdGkgcGxhY2VzIGFyZSBmaWxsZWQgd2l0aCAnJ2Nl J3UnJyBpcyBlcXVpdmFsZW50IHRvOiA8YnIgLz4nJ2xvIHNpJ28gY2UndSB4ZWJuaSBjZSd1Jycg LSAmcXVvdDtUaGUgY29uY2VwdCBvZjogJnF1b3Q7WCBoYXRlcyBZJnF1b3Q7JnF1b3Q7ID0gJnF1 b3Q7SGF0ZSBpdHNlbGYmcXVvdDs8YnIgLz48YnIgLz5UaGUgbXl0aGljYWwgY3JlYXR1cmUgQmFs cm9nIGZyb20gTG9yZCBvZiB0aGUgUmluZ3MgaXMgZGVzY3JpYmVkIGFzIGJlaW5nICZxdW90O3No YWRvdyBhbmQgZmxhbWUmcXVvdDssIHRoZSBwb2VzeSBvZiB3aGljaCBhcHBlYXJzIG11Y2ggc3Ry b25nZXIgaW4gTG9qYmFuOiAnJ2xvIGJhbHJvZyBjdSBzaSdvIGZhZ3JpIGpvaSBtYW5rdScnIGlz IGFzc2VydGluZyBub3Qgb25seSB0aGF0IHRoZXkncmUgbWFkZSBvdXQgb2Ygc2hhZG93IGFuZCBm bGFtZSwgYnV0IGFsc28gc3VnZ2VzdGluZyB0aGF0IHRoZXkgYXJlIHRoZSBwcm90b3B5dGljYWwg U2hhZG93IGFuZCBGbGFtZSwgZnJvbSB3aGljaCBhbGwgb3RoZXIgc2hhZG93IGFuZCBmbGFtZSBk ZXJpdmVzLjxiciAvPkV0eW1vbG9naWNhbGx5LCBzaSdvIGRlcml2ZXMgZnJvbSBzaWRibywgJnF1 b3Q7aWRlYSZxdW90OywgYnV0IGluIGN1cnJlbnQgdXNhZ2UsIGFuIGlkZWEgaXMgY29uc2lkZXJl ZCBhIHRleHQgYW5kIG5vdCBhIGNvbmNlcHQuPGJyIC8+PGJyIC8+VGhlIGRpZmZlcmVuY2UgYmV0 d2VlbiB0aGUgdGhyZWUgYWJzdHJhY3RvcnMgJydrYScnLCAnJ25pJycgYW5kICcnc2knbycnIGNh biBiZSBpbGx1c3RyYXRlZCB3aXRoIGEgZmV3IG1vcmUgZXhhbXBsZXMgZm9yIGNvbXBhcmlzYXRp b246PGJyIC8+JydsbyBrYSBjcmlubyBjdSBwbHVrYSBtaScnIC0gJnF1b3Q7QmVpbmcgZ3JlZW4g cGxlYXNlcyBtZSZxdW90OzxiciAvPicnbG8gbmkgY3Jpbm8gY3UgcGx1a2EgbWknJyAgLSAmcXVv dDtIb3cgbXVjaCB7em8nZX0gaXMgZ3JlZW4gcGxlYXNlcyBtZSZxdW90OyAobm8gJydjZSd1Jych KTxiciAvPicnbG8gc2knbyBjcmlubyBjdSBwbHVrYSBtaScnIC0gJnF1b3Q7R3JlZW5uZXNzIHBs ZWFzZXMgbWUmcXVvdDs8YnIgLz48YnIgLz4nJ21pIG5pdGN1IGxvIGthIHNpcG5hIGt1IGxvIGth IGthbnJvJycgLSAmcXVvdDtJIG5lZWQgc2xlZXAgaW4gb3JkZXIgdG8gYmUgaGVhbHRoeSZxdW90 OzxiciAvPicnbWkgbml0Y3UgbG8gc2knbyBzaXBuYSBsbyBrYSB0YXZsYSBmaSBsbyBzaXBuYScn IC0gJnF1b3Q7SSBuZWVkIHRoZSBjb25jZXB0IG9mIHNsZWVwIGluIG9yZGVyIHRvIHNwZWFrIGFi b3V0IHNsZWVwaW5nIHRoaW5ncyZxdW90OzxiciAvPkFuZCBJIHdhcyB0ZW1wdGVkIHRvIHdyaXRl ICcnbWkgbml0Y3UgbG8gbmkgc2lwbmEga3UgbG8ga2EgdnJlamkgcmknJyAtICZxdW90O0kgbmVl ZCB0aGUgYW1vdW50IG9mIGhvdyBtdWNoIHt6bydlfSBzbGVlcHMmcXVvdDssIGJ1dCB0aGF0IGRv ZXNuJ3Qgc2VlbSB0byBtYWtlIGEgbG90IG9mIHNlbnNlLjxiciAvPjxiciAvPjxiciAvPiEhTG9q YmFuIExlc3NvbnMgLSBMZXNzb24gdGhpcnR5LW9uZSAodGhlIG5vdC1zby1jdXRlIGFzc29ydGVk IHdvcmRzKTxiciAvPlllcywgdGhpcyBsZXNzb24gaXMgeWV0IGFub3RoZXIgd2hpY2ggZm9jdXNl cyBvbiBhc3NvcnRlZCB3b3Jkcy4gVGhpcyB0aW1lLCBob3dldmVyLCB0aGUgY29udGVudCBvZiB0 aGUgbGVzc29uIGlzIG5vdCBjaG9zZW4gYnkgY29tbW9uIHVzYWdlOiBVbmxpa2Ugd29yZHMgbGlr ZSAnJ2phaScnIGFuZCAnJ3NpJycsIG1vc3Qgb2YgdGhlIGZvbGxvd2luZyB3b3JkcyBzZWUgbGl0 dGxlIHVzYWdlIGluIG9yZGluYXJ5IGNvbnZlcnNhdGlvbi4gU29tZSBvZiB0aGVtIGFyZSwgaG93 ZXZlciwgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGZvbGxvd2luZyBsZXNzb25zLCBh bmQgc28gdGhlc2Ugd29yZHMgbXVzdCBiZSBhd2t3YXJkbHkgcGxhY2VkIGJlZm9yZSB0aGVpciB1 c2FnZSBpbiB0aGVzZSBsZXNzb25zLgoKLSBCZWZvcmUgd2UgdmVudHVyZSBvbiB0b3dhcmRzIHRo ZSBuZXh0IGxlc3NvbiwgdGhlcmUncyBvbmUgd29yZCB3aGljaCBJIHRoaW5rIGRlc2VydmVzIGEg bW9yZSB0aG9yb3VnaCBleHBsYW5hdGlvbjogJydrYXUnJy4KKyBCZWZvcmUgd2UgdmVudHVyZSB0 byBvYnNjdXJlIHdvcmRzLCB0aGVyZSdzIG9uZSB3b3JkIHdoaWNoIEkgdGhpbmsgZGVzZXJ2ZXMg YSBtb3JlIHRob3JvdWdoIGV4cGxhbmF0aW9uIHRoYW4gaXQgaGFzIGJlZW4gZ2l2ZW4gc28gZmFy OiAnJ2thdScnLgonJ2thdScnIHdhcyBleHBsYWluZWQgaW4gbGVzc29uIHR3ZWx2ZSwgYnV0IHRo ZSByZWFsIGltcGxpY2F0aW9ucyBvZiBpdCB3YXMgbm90LiBJZiB5b3UgaGF2ZSBmb3Jnb3R0ZW4g d2hhdCBpdCBtZWFucywgSSBhZHZpY2UgeW91IHRvIGdvIGJhY2sgYW5kIHNlZS4gVW5mb3J0dW5h dGVseSwgSSBjYW4ndCBwcmVzZW50IGEgdGhlb3J5IG9uIHdoYXQgJydrYXUnJyBkb2VzIHdoZW4g aXQncyBwcmVzZW50IGluIHRoZSBtYWluIGJyaWRpLCBvbmx5IG9uIHdoYXQgaXQgZG9lcyBpbnNp ZGUgYW4gYWJzdHJhY3Rpb24uCkEgYnJpZGkgd2l0aCBhYnN0cmFjdGlvbiBjb250YWluaW5nIGEg JydrYXUnJyBtYWtlcyB0d28gY2xhaW1zOiBUaGUgYnJpZGkgaXRzZWxmIG1ha2VzIG9uZSBjbGFp bSBhcyB1c3VhbCwgYW5kIGltcGxpY2l0IGluIHRoZSBhYnN0cmFjdGlvbiBpcyBmdXJ0aGVybW9y ZSB0aGUgY2xhaW0gdGhhdCB0aGUgd29yZCAnJ2thdScnIGlzIGF0dGFjaGVkIHRvIGhhcyBhIHJl YWwsIG5vbnplcm8gbWVhbmluZy4KCistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBAIC1MaW5lczogMTQzLTE1MiBjaGFuZ2VkIHRvICtM aW5lczogMjU3LTI2MyBAQAorLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKwonJ2RvIGNhJ28gZGp1bm8gbG8gZHUndSBsYSBrcmVzdGNlbiBr YXUgY3UgY2luYmEgbGEgYW4nJyA9ICJZb3UgYWxyZWFkeSBrbm93IHRoYXQgaXQgd2FzIEtyaXN0 aWFuLCB3aG8ga2lzc2VkIEFubmUuIiBzdGF0ZXMgZmlyc3RseSB0aGF0ICcnbGEga3Jlc3RjZW4g Y3UgY2luYmEgbGEgYW4nJyBhbmQgdGhlbiB0aGF0ICcnZG8gY2EnbyBkanVubyBsb2R1J3UgbGEg a3Jlc3RjZW4gY3UgY2luYmEgbGEgYW4nJy4KCi0gISFMb2piYW4gTGVzc29ucyAtIExlc3NvbiB0 aGlydHkgKHRoZSBub3Qtc28tY3V0ZSBhc3NvcnRlZCB3b3Jkcyk8YnIgLz5ZZXMsIHRoaXMgbGVz c29uIGlzIHlldCBhbm90aGVyIHdoaWNoIGZvY3VzZXMgb24gYXNzb3J0ZWQgd29yZHMuIFRoaXMg dGltZSwgaG93ZXZlciwgdGhlIGNvbnRlbnQgb2YgdGhlIGxlc3NvbiBpcyBub3QgY2hvc2VuIGJ5 IGNvbW1vbiB1c2FnZTogVW5saWtlIHdvcmRzIGxpa2UgJydqYWknJyBhbmQgJydzaScnLCB0aGUg Zm9sbG93aW5nIHdvcmRzIHNlZSBsaXR0bGUgdXNhZ2UgaW4gb3JkaW5hcnkgY29udmVyc2F0aW9u LiBTb21lIG9mIHRoZW0gYXJlLCBob3dldmVyLCBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZGluZyB0 aGUgZm9sbG93aW5nIGxlc3NvbnMsIGFuZCBzbyB0aGVzZSB3b3JkcyBtdXN0IGJlIGF3a3dhcmRs eSBwbGFjZWQgYmVmb3JlIHRoZWlyIHVzYWdlIGluIHRoZXNlIGxlc3NvbnMuPGJyIC8+PGJyIC8+ TGV0IHVzIGJlZ2luIHdpdGggJyd4aScnOyBpdCdzIGVhc3kuCisgTW92aW5nIG9uIHRvIHRoZSBt b3JlIG9ic2N1cmUgd29yZHMsIHdlIGNhbiBiZWdpbiB3aXRoICcneGknJzsgaXQncyBlYXN5Lgpf XycneGknJ19fOiBTdWJzY3JpcHQuIENvbnZlcnRzIGFueSBmb2xsb3dpbmcgbnVtYmVyIHN0cmlu ZyB0byBhIHN1YnNjcmlwdCwgd2hpY2ggaGFzIHRoZSBncmFtbWFyIG9mIGFuIGF0dGl0dWRpbmFs IChpZS4gcGxhY2FibGUgcHJhY3RpY2FsbHkgYW55d2hlcmUpLgotIFRoZXJlIGFyZSBmZXcgb2Zm aWNpYWxseSBlbmNvdXJhZ2VkIHVzZXMgb2YgJyd4aScnLCBidXQgcHJlY2lzZWx5IGJlY2F1c2Ug dGhlIGNvbnN0cnVjdCAnJ3hpJycrbnVtYmVyIGhhcyB0aGUgZnJlZSBncmFtbWFyIG9mIGFuIGF0 dGl0dWRpbmFsLCB0aGUgcG9zc2libGUgdXNlcyBvZiAnJ3hpJycgYXJlIGFsbW9zdCBlbmRsZXNz LiBJbiBnZW5lcmFsLCBpdCdzIHVzZWQgdG8gZW51bWVyYXRlIGFueSBfX3dvcmRfXywgX192YXJp YWJsZV9fIG9yIF9fZ3JhbW1hdGljYWwgY29uc3RydWN0X18sIGFzIG9wcG9zZWQgdG8gd2hhdCBp dCByZWZlcnMgdG8uIExldCdzIHNlZSBzb21lIGV4YW1wbGVzLgorIFRoZXJlIGFyZSBmZXcgb2Zm aWNpYWxseSBlbmNvdXJhZ2VkIHVzZXMgb2YgJyd4aScnLCBidXQgcHJlY2lzZWx5IGJlY2F1c2Ug dGhlIGNvbnN0cnVjdCAnJ3hpJycrbnVtYmVyIGhhcyB0aGUgZnJlZSBncmFtbWFyIG9mIGFuIGF0 dGl0dWRpbmFsLCB0aGUgcG9zc2libGUgdXNlcyBvZiAnJ3hpJycgYXJlIGFsbW9zdCBlbmRsZXNz LiBJbiBnZW5lcmFsLCBpdCdzIHVzZWQgdG8gZW51bWVyYXRlIGFueSB3b3JkLCB2YXJpYWJsZSBv ciBncmFtbWF0aWNhbCBjb25zdHJ1Y3QsIGFzIG9wcG9zZWQgdG8gd2hhdCBpdCByZWZlcnMgdG8u IExldCdzIHNlZSBzb21lIGV4YW1wbGVzLgpsYSB0c2FuaSBjdSBjdXNrdSB6byBjb2kgIC5pIGJh IGJvIGxhIC50cmlsaXluLiBjdXNrdSBsdSAudWkgY29pIGxhIHRzYW5pIGNvaSBsYSBrbGFrdSBs aSd1ICAuaSBiYSBibyBsYSBrbGFrdSBjdSBzcHVkYSBmaSBsdSBjb2kgdHkuIHhpIHBhIC5lIHR5 LiB4aSByZSBkbyd1IHpvJ28gbGkndSAtICJUc2FuaSBzYWlkICJoaSIsIHRoZW4gVHJpbGl5biBz YWlkICJIZXkgVHNhbmksIGhleSBLbGFrdSA6KSIsIHRoZW4gS2xha3UgYW5zd2VyZWQgIkhlbGxv IFQxIGFuZCBUMiA6UCIiCkJlY2F1c2UgaXQncyB0aGUgc3RhbmRhcmQgdGhhdCAnJ3R5LicgcmVm ZXJzIHRvIHRoZSBsYXN0IHN1bXRpIHdoaWNoIGJlZ2FuIHdpdGggVCwgJyd0eScnIGJ5IGl0c2Vs ZiBhcyBzYWlkIGJ5IEtsYWt1IHdvdWxkIGhhdmUgcmVmZXJyZWQgdG8gVHNhbmkuIFR3byBfX2Rp ZmZlcmVudF9fICcndHkuJycgY2FuIGJlIG1hZGUgYnkgc3Vic2NyaXB0aW5nIHdpdGggJyd4aScn LgoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSsKQEAgLUxpbmVzOiAxODEtMTgzIGNoYW5nZWQgdG8gK0xpbmVzOiAyOTItMjk0IEBACist Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r CgohISFFbmQgb2YgbGVzc29ucwotIFNvcnJ5LCBidXQgYXMgb2Ygbm93LCB0aGVyZSBhcmUgbm8g bW9yZSBsZXNzb25zIGluIHRoaXMgc2VyaWVzLiBQZXJoYXBzIG1vcmUgd2lsbCBiZSBhZGRlZCBs YXRlci4gTWVhbndoaWxlLCBmZWVsIGZyZWUgdG8gdmlzaXQgKCh3YXZlbGVzc29uc2NvbnRpbnVl ZHx0aGUgZmlyc3QgcGFydCBvZiBXYXZlbGVzc29uc2NvbnRpbnVlZCkpIG9yICgod2F2ZWxlc3Nv bnNjb250aW51ZWR8VGhlIHNlY29uZCBwYXJ0IG9mIFdhdmVsZXNzb25zY29udGludWVkKSkuCisg U29ycnksIGJ1dCBhcyBvZiBub3csIHRoZXJlIGFyZSBubyBtb3JlIGxlc3NvbnMgaW4gdGhpcyBz ZXJpZXMuIFBlcmhhcHMgbW9yZSB3aWxsIGJlIGFkZGVkIGxhdGVyLiBNZWFud2hpbGUsIGZlZWwg ZnJlZSB0byB2aXNpdCAoKHdhdmVsZXNzb25zY29udGludWVkfHRoZSBmaXJzdCBwYXJ0IG9mIFdh dmVsZXNzb25zY29udGludWVkKSkgb3IgKCh3YXZlbGVzc29uc2NvbnRpbnVlZHAyfFRoZSBzZWNv bmQgcGFydCBvZiBXYXZlbGVzc29uc2NvbnRpbnVlZCkpLgoKCgoKKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKVGhlIG5ldyBwYWdlIGNv bnRlbnQgZm9sbG93cyBiZWxvdy4KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKCiFMb2piYW4gV2F2ZSBMZXNzb25zIENvbnRpbnVlZCAo cGFydCB0aHJlZSk6CgohISFNYWRlIGJ5IGxhIGtsYWt1IHdpdGggaGVscCBmcm9tIHZhcmlvdXMg bG9qYmFuaXN0cy4gQmFzZWQgb24gdGhlIHdvcmsgb2YgbGEgLmtyaWJhY3IuIFNwcmluZyAyMDEz LgoKCgpXZWxjb21lIHRvIHRoZSB0aGlyZCBwYXJ0IG9mIFRoZSBXYXZlbGVzc29uc2NvbnRpbnVl ZC4gSWYgeW91IHdhbnQgdG8gZ28gYmFjayB0byAoKHdhdmVsZXNzb25zY29udGludWVkfHRoZSBm aXJzdCBwYXJ0KSkgb3IgKCh3YXZlbGVzc29uc2NvbnRpbnVlZHAyfHRoZSBzZWNvbmQgcGFydCkp LCBqdXN0IGNsaWNrIG9uIHRoZSB3b3JkcyByZXByZXNlbnRpbmcgdGhlbSBpbiB0aGlzIHNlbnRl bmNlLiBUaGlzIHRoaXJkIHBhcnQgaXMgYWJvdXQgYWR2YW5jZWQgTG9qYmFuLiBUaGUgTG9qYmFu IGluIHRoaXMgcGFydCBpcyByYXJlbHkgcmVsZXZhbnQgd2hlbiBzcGVha2luZyBMb2piYW4gaW4g bm9ybWFsIGNvbnRleHRzLCBidXQgaXQgcG9wcyB1cCBxdWl0ZSBvZnRlbiB3aGVuIHNwZWFraW5n IGFib3V0IGxhbmd1YWdlIGFuZCBsb2dpYy4gCgpUaGVzZSBjb3JuZXJzIG9mIExvamJhbiBpcyBm b3IgdGhlIG1vc3QgcGFydCBleHBlcmltZW50YWwsIG5ldyBvciBjb21wbGV4LCBzbyB5b3Ugc2hv dWxkIGV4cGVjdCBhIGxvdCBvZiBjaGFuZ2luZyBkZWZpbml0aW9ucywgb3V0ZGF0ZWQgZGVmaW5p dGlvbnMsIGRpc2FncmVlbWVudHMgYW5kIG1pc3VuZGVyc3RhbmRpbmdzIG9uIHRoZSBwYXJ0IG9m IHRoZSBhdXRob3Igb2YgdGhpcyB0ZXh0LiBTb3JyeSBhYm91dCB0aGF0LgoKCgohIUxvamJhbiBM ZXNzb25zIC0gTGVzc29uIHR3ZW50eS1zZXZlbiAobG9qYmFuIGxvZ2ljOiBkYSwgYnUnYSwgem8n dSBhbmQgdGVybXMpCgpUaGUgc3RhdGVkIHRvcGljIG9mIHRoaXMgbGVzc29uIG5lZWRzIHNvbWUg anVzdGlmaWNhdGlvbjogVGhpcyBsZXNzb24gaXMgbm90IHJlYWxseSBhYm91dCBob3cgZG8gdG8g bG9naWMgaW4gTG9qYmFuLCBzaW5jZSBmaXJzdGx5LCBsb2dpYyBpcyBwcmVzdW1hYmx5IHRoZSBz YW1lIGluIGFsbCBsYW5ndWFnZXMsIGFuZCBzZWNvbmRseSwgYWN0dWFsbHkgdGVhY2hpbmcgbG9n aWMgd291bGQgYmUgdG90YWxseSBpbXByYWN0aWNhbCBpbiBvbmUgc2luZ2xlIGxlc3Nvbi4gUmF0 aGVyLCB0aGlzIGxlc3NvbiBleHBsYWlucyBzb21lIGNvbnN0cnVjdHMgd2hpY2ggcmVzZW1ibGUg dGhvc2Ugd2hpY2ggbG9naWNpYW5zIHVzZS4gSXQgdHVybnMgb3V0IHRoZXkgaGF2ZSBhIHJlbWFy a2FibGUgd2lkZSByYW5nZSBvZiB1c2VzIGluIExvamJhbi4KCkdldHRpbmcgaW52b2x2ZWQgaW4g dGhlIG1vcmUgb2JzY3VyZSBkZXRhaWxzIG9mIHRoZXNlIGxvZ2ljYWwgY29uc3RydWN0cyBjYW4g YmUgbWluZC13YXJwaW5nbHkgZGlmZmljdWx0LCBhbmQgdGhlcmUgd2lsbCBhbHdheXMgYmUgc29t ZSBkaXNhZ3JlZW1lbnQgaW4gdGhlIGNvcm5lcnMgb2YgdGhpcyBwYXJ0IG9mIHRoZSBsYW5ndWFn ZS4KCkxlYXJuaW5nIHRoZXNlIGxvZ2ljYWwgY29uc3RydWN0cyByZXF1aXJlcyBvbmUgdG8gbGVh cm4gYSBiaXQgYWJvdXQgY29uc3RydWN0cyB3aGljaCBhcmUgbm90IGxvZ2ljYWwgaW4gbmF0dXJl LiBMZXQncyBiZWdpbiB3aXRoICcnem8ndScnCgpfXycnem8ndScnX18gU2VwYXJhdGVzIHByZW5l eCBmcm9tIGJyaWRpCgpCZWZvcmUgYW55ICcnem8ndScnIGlzIHRoZSBwcmVuZXgsIGFmdGVyICcn em8ndScnIGlzIHRoZSBicmlkaS4gSW5mb3JtYWxseSwgYSBwcmVuZXggaXMgYSBwbGFjZSBpbiBm cm9udCBvZiB0aGUgYnJpZGksIHdoZXJlIHlvdSBwdXQgYSBidW5jaCBvZiB0ZXJtcy4gQSB0ZXJt IGlzIGFuIEVuZ2xpc2ggd29yZCBnaXZlbiB0byBzb21lIGtpbmRzIG9mIExvamJhbiBjb25zdHJ1 Y3RzOiBTdW10aSwgc3VtdGNpdGEgd2l0aCBvciB3aXRob3V0IHN1bXRpIGF0dGFjaGVkLCAnJ25h IGt1JycgYW5kIGFuIGFib21pbmF0aW9uIGNhbGxlZCBfX3Rlcm1zZXRzX18sIHdoaWNoIEkgcmVm dXNlIHRvIGluY2x1ZGUgaW4gdGhlc2UgbGVzc29ucy4gVGhlIHByZW5leCBpcyBub3QgcGFydCBv ZiB0aGUgYnJpZGksIGJ1dCBhbnkgdGVybXMgcHV0IGluc2lkZSBpdCBnaXZlcyB1cyBpbmZvcm1h dGlvbiBhYm91dCB0aGUgYnJpZGkuIE9uZSBjYW4sIGZvciBleGFtcGxlLCB1c2UgaXQgdG8gc3Rh dGUgYSB0b3BpYyBhcyBzaG93biB0aHVzOgoKJydsbyBwYW1wZSdvIGplIG5haSBzcGVuaSB6byd1 IG1pIG5hIHphbnJ1JycgLSAiQ29uY2VybmluZyBsb3ZlcnMgd2hvIGFyZSBub3Qgc3BvdXNlczog SSBkbyBub3QgYXBwcm92ZSIuIFRoZSBiZW5lZml0cyBvZiBraW5kIG9mIHNlbnRlbmNlIHN0cnVj dHVyaW5nIGlzIHF1ZXN0aW9uYWJsZSwgYnV0IGl0J3MgYWx3YXlzIGdvb2QgdG8gaGF2ZSBzb21l IHZhcmlhdGlvbiB0byBwbGF5IHdpdGguIEZ1cnRoZXJtb3JlLCBjb25zdHJ1Y3Rpbmcgc2VudGVu Y2VzIHRoaXMgd2F5IHJlc2VtYmxlcyBNYW5kYXJpbiAoYW5kIG90aGVyIGxhbmd1YWdlcykgY2xv c2VseSwgbWVhbmluZyBpdCBtaWdodCBzZWVtIG1vcmUgaW50dWl0aXZlIGZvciBzcGVha2VycyBv ZiB0aGF0IGxhbmd1YWdlLgoKX18nJ3BhbXBlJ28nJ19fIHgxIGlzIGEgbG92ZXIgb2YgeDIKCl9f Jyd6YW5ydScnX18geDEgYXBwcm92ZXMgb2YgeDIgKHBsYW4sIGV2ZW50IG9yIGFjdGlvbikKCk9m IGNvdXJzZSwgdGhlIHJlbGF0aW9uIGJldHdlZW4gdGhlIHRlcm1zIGluIHRoZSBwcmVuZXggYW5k IHRoZSBicmlkaSBpcyB2YWd1ZS4gT25lIGNhbiBpbWFnaW5lIGFueSBzdW10aSBpbiB0aGUgcHJl bmV4IGJlYXJpbmcgdGhlIHNhbWUgcmVsZXZhbmNlIHRvIHRoZSBicmlkaSBhcyBpZiB0aGV5IHdl cmUgcHV0IGluIHRoZSBicmlkaSBhZnRlciBhICcnZG8nZScnIHN1bXRjaXRhLCBhbmQgYW55IHN1 bXRjaXRhIGluIHRoZSBwcmVuZXggZG9pbmcgcHJldHR5IG11Y2ggdGhlIHNhbWUgYXMgaWYgdGhl eSB3ZXJlIGluIHRoZSBicmlkaS4gSXQgaXMgcXVpdGUgcG9zc2libGUgdG8gcHV0IHRlcm1zIGlu IHByZW5leGVzIHdpdGhvdXQgYW55IGNsZWFyIGhpbnRzIGFzIHRvIGhvdyB0aGUgdGVybSBtYXkg cmVsYXRlIHRvIHRoZSBicmlkaToKCicnbGUgdmkgZ2Vya3Ugem8ndSBtaSB0bydlIG5lbGNpIGxv IGNpZGpycGl0c2EnJyAtICJDb25jZXJuaW5nIHRoaXMgZG9nIGhlcmU6IEkgZGlzbGlrZSBwaXp6 YS4iIEl0IGxlYXZlcyB5b3UgZ3Vlc3NpbmcgYWJvdXQgdGhlIHJlYXNvbiBmb3IgbWVudGlvbmlu ZyB0aGUgZG9nLgoKX18nJ2NpZGpycGl0c2EnJ19fIHgxIGlzIHBpenphIHdpdGggdG9wcGluZy9p bmdyZWRpZW50cyB4MgoKSWYgdGhlIHByZW5leCBjb250YWlucyAnJ25hIGt1JycsIGl0J3MgcHJl dHR5IHN0cmFpZ2h0IGZvcndhcmQ6IFRoZSBlbnRpcmUgYnJpZGkgaXMgbmVnYXRlZCwganVzdCBh cyBpZiB0aGUgYnJpZGkgaXRzZWxmIGJlZ2FuIHdpdGggJyduYSBrdScnLgoKU28gaG93IGxvbmcg ZG9lcyBhIHByZW5leCBsYXN0PyBJdCBsYXN0cyB1bnRpbCB0aGUgZm9sbG93aW5nIGJyaWRpIGlz IHRlcm1pbmF0ZWQuIElmIHRoYXQgaXMgbm90IGRlc2lyZWQsIHRoZXJlIGFyZSB0d28gd2F5cyB0 byBtYWtlIGl0IGFwcGx5IHRvIHNldmVyYWwgYnJpZGk6IE9uZSBpcyB0byBwdXQgc29tZSBraW5k IG9mIGNvbm5lY3RpdmUgYWZ0ZXIgdGhlICcnLmknJyBzZXBhcmF0aW5nIHRoZSBicmlkaSwgYW5k IGFub3RoZXIgbWV0aG9kIGlzIHRvIHNpbXBseSBpbmNsdWRlIGFsbCBvZiB0aGUgdGV4dCBpbiAn J3R1J2UnJyAuLi4gJyd0dSd1JyctYnJhY2tldHMuIFRoZXNlIGJyYWNrZXRzIHdvcmsgcHJldHR5 IG11Y2ggYnkgZ2x1aW5nIGFsbCB0aGUgYnJpZGkgdG9nZXRoZXIgYW5kIG1ha2VzIGFsbCBzb3J0 cyBvZiBjb25zdHJ1Y3QgYXBwbHkgdG8gc2V2ZXJhbCBicmlkaS4KCgoKTm93IHRoYXQgd2UgY292 ZXJlZCAnJ3pvJ3UnJywgdGhlIGZpcnN0ICJsb2dpY2FsIiB3b3JkcyB3ZSBjYW4gdXNlIGl0IHdp dGggYXJlIHRoZXNlOgoKX18nJ2RhJydfXyBsb2dpY2FsbHkgcXVhbnRpZmllZCBleGlzdGVudGlh bCBzdW1rYSdpIDEKCl9fJydkZScnX18gbG9naWNhbGx5IHF1YW50aWZpZWQgZXhpc3RlbnRpYWwg c3Vta2EnaSAyCgpfXycnZGknJ19fIGxvZ2ljYWxseSBxdWFudGlmaWVkIGV4aXN0ZW50aWFsIHN1 bWthJ2kgMwoKVGhlc2Ugd29yZHMgYXJlIGFsbCB0aGUgc2FtZSwgbGlrZSB0aGUgbWF0aGVtYXRp Y2FsIHZhcmlhYmxlcyB4LCB5IGFuZCB6LiBPbmNlIHlvdSBoYXZlIGRlZmluZWQgdGhlbSwgaG93 ZXZlciwgdGhleSBrZWVwIHJlZmVyaW5nIHRvIHRoZSBzYW1lIHRoaW5nLiBUaGVzZSB3b3JkcyBh cmUgZGVmaW5lZCBpbiB0aGUgcHJlbmV4IG9mIGJyaWRpLCBtZWFuaW5nIHRoYXQgd2hlbiB0aGUg cHJlbmV4IHN0b3AgYXBwbHlpbmcsIHRoZSBkZWZpbml0aW9uIG9mIHRoZXNlIHRocmVlIHdvcmRz IGFyZSBjYW5jZWxsZWQuCgpUaGUgd29yZHMgJydkYScnLCAnJ2RlJycgYW5kICcnZGknJyBjYW4g cmVmZXIgdG8gbGl0ZXJhbGx5IGFueSBzdW10aSwgd2hpY2ggbWFrZXMgdGhlbSBraW5kIG9mIHVz ZWxlc3MgdW5sZXNzIHJlc3RyaWN0ZWQgaW4gc29tZSB3YXkuIFRoZSBmaXJzdCBhbmQgZm9yZW1v c3Qgd2F5IHRvIHJlc3RyaWN0IHRoZW0gaXMgdG8gcXVhbnRpZnkgdGhlbTogVGhleSBhcmUgbm90 IGNhbGxlZCAibG9naWNhbGx5IHF1YW50aWZpZWQgZXhpc3RlbnRpYWwgc3Vta2EnaSIgZm9yIG5v dGhpbmcuIFRoZXkgYXJlIHN1bWthJ2ksIHRoZXkgYXJlIG1vc3QgdXNlZnVsIHdoZW4gcXVhbnRp ZmllZCwgYW5kIHRoZXkgYXJlIGV4aXN0ZW50aWFsLiBXaGF0IGRvZXMgaXQgbWVhbiwgYmVpbmcg ImV4aXN0ZW50aWFsIj8gSXQgbWVhbnMgdGhhdCBpZiB0aGV5IGFyZSB1c2VkLCB0aGF0IGltcGxp ZXMgdGhhdCB0aGV5IGFjdHVhbGx5IHJlZmVyIHRvIHNvbWV0aGluZyB3aGljaCBleGlzdHMuIEFu IGV4YW1wbGU6CgpUaGUgc3RhdGVtZW50ICcncGEgZGEgem8ndSBkYSBnZXJrdScnIGhhcyAnJ3Bh IGRhJycgaW4gdGhlIHByZW5leCwgd2hpY2ggbWVhbnMgIkNvbmNlcm5pbmcgb25lIGV4aXN0aW5n IHRoaW5nOiIsIGFuZCB0aGVuICcnZGEnJywgbm93IGRlZmluZWQsIGlzIHVzZWQgaW4gdGhlIGJy aWRpICcnZGEgZ2Vya3UnJy4gVHJhbnNsYXRlZCB0byBFbmdsaXNoLCB0aGlzIG1lYW5zOiAiVGhl cmUgZXhpc3RzIG9uZSB0aGluZyB3aGljaCBpcyBhIGRvZyIuIFRoaXMgaXMgb2J2aW91c2x5IGZh bHNlLCB0aGVyZSBhcmUgYXJvdW5kIDQwMCwwMDAsMDAwIG9mIHRoZW0gaW4gdGhlIHdvcmxkLiBJ ZiAnJ2RhJycgYW5kIGl0cyBzaXN0ZXJzIGFyZSBub3QgcXVhbnRpZmllZCwgdGhlIG51bWJlciAn J3N1J28nJyBpcyB0aGUgZGVmYXVsdC4gVGh1cyAnJ2RhIHpvJ3UgZGEgZ2Vya3UnJyBtZWFucyAi VGhlcmUgZXhpc3QgYXQgbGVhc3Qgb25lIHRoaW5nIHdoaWNoIGlzIGEgZG9nIiwgd2hpY2ggaXMg dHJ1ZS4gTm90aWNlIGhlcmUsIHRoYXQgYW55IHF1YW50aWZpY2F0aW9uIG11c3QgYmUgbW9yZSBv ciBsZXNzIGV4YWN0IGluIG9yZGVyIHRvIGJlIHRydWU6IE9mIGNvdXJzZSBvbmUgZG9nIGV4aXN0 cywgYnV0IGluIExvamJhbiwgJydwYSBkYSB6byd1IGRhIGdlcmt1JycgbWVhbnMgbm90IG9ubHkg dGhhdCBkb2VzIG9uZSBkb2cgZXhpc3RzLCBidXQgYWxzbyB0aGF0IG5vIG1vcmUgdGhhbiBvbmUg ZG9lcy4gCgoKClRoZXJlIGFyZSBhIGZldyBzcGVjaWZpYyBydWxlcyB0byB0aGVzZSBleGlzdGVu dGlhbCBzdW1rYSdpOgoKLSBJZiB0aGUgcXVhbnRpZmllciAnJ3JvJycgaXMgdXNlZCBiZWZvcmUg JydkYScnLCBpdCBpbnN0ZWFkIHJlZmVycyB0byAiYWxsIHdoaWNoIGV4aXN0cyIuCgotIEltcG9y dGFudGx5LCB0aGUgdXNhZ2Ugb2YgYW4gZXhpc3RlbnRpYWwgc3Vta2EnaSBvbmx5IGFzc2VydHMg dGhhdCBzdWNoIGEgdGhpbmcgZXhpc3RzIF9faW4gdGhlIGRvbWFpbiBvZiB0cnV0aCB3aGVyZSBp dCdzIHVzZWRfXy4gVGh1cywgaW4gdGhlIHNlbnRlbmNlICcnc28nZSB2ZXJiYSBjdSBrcmljaSBs byBkdSd1IHN1J28gZGEgY3JpZGEnJywgZG9lcyBub3Qgc3RhdGUgJydkYSBjcmlkYScnLCBzaW5j ZSBpdHMgImRvbWFpbiBvZiB0cnV0aCIgaXMgb25seSBpbnNpZGUgdGhlIGR1J3UtYWJzdHJhY3Rp b24uIEdlbmVyYWxseSBzcGVha2luZywgYWJzdHJhY3Rpb25zIGNvbnRhaW4gdGhlaXIgb3duIGRv bWFpbiBvZiB0cnV0aCwgc28gdXNpbmcgJydkYScnIGFuZCBmcmllbmRzIGluc2lkZSBhbiBhYnN0 cmFjdGlvbiBpcyB1c3VhbGx5IHNhZmUuCgotIElmIHRoZSBzYW1lIHZhcmlhYmxlIGlzIHF1YW50 aWZpZWQgc2V2ZXJhbCB0aW1lcywgdGhlIGZpcnN0IHF1YW50aWZpY2F0aW9uIGlzIHRoZSBvbmUg d2hpY2ggc3RpY2tzOiBBbnkgbGF0ZXIgcXVhbnRpZmllZCBpbnN0YW5jZSBvZiB0aGF0IHZhcmlh YmxlIGNhbiByZWZlciBvbmx5IHRvIHRoaW5ncyB3aGljaCBhcmUgYWxzbyBiZWluZyByZWZlcnJl ZCB0byBieSB0aGUgZmlyc3QgaW5zdGFuY2Ugb2YgdGhhdCB2YXJpYWJsZSwgYW5kIGFueSBsYXRl ciBub24tcXVhbnRpZmllZCBpbnN0YW5jZSBvZiB0aGF0IHZhcmlhYmxlIHdpbGwgZ2FpbiB0aGUg Zmlyc3QgcXVhbnRpZmllci4gVG8gdXNlIGFuIGV4YW1wbGU6ICcnY2kgZGEgem8ndSByZSBkYSBi YXJkYSAuaWplIGRhIHBlbHh1JycgbWVhbnMgIlRoZXJlIGV4aXN0cyB0aHJlZSB0aGluZ3Mgc3Vj aCB0aGF0IHR3byBvZiB0aGVtIGFyZSBiaWcgYW5kIGFsbCB0aHJlZSBhcmUgeWVsbG93Ii4gJydy ZSBkYScnLCBiZWluZyBhZnRlciAnJ2NpIGRhJycsIGNhbiBvbmx5IHJlZmVyIHRvIHR3byBvZiB0 aGUgYWxyZWFkeSBzdGF0ZWQgdGhyZWUgdGhpbmdzLiBXaGVuICcnZGEnJyBhcHBlYXJzIHdpdGhv dXQgYSBxdWFudGlmaWVyLCAnJ2NpJycgaXMgYXNzdW1lZC4KCi0gSWYgdGhlcmUgYXJlIHNldmVy YWwgdGVybXMgaW4gdGhlIHByZW5leCwgdGhlIHRlcm1zIGFyZSBhbHdheXMgcmVhZCBsZWZ0IHRv IHJpZ2h0LiBTb21ldGltZXMsIHRoaXMgbWF0dGVyczogJydybyBkYSBkZSB6byd1IGRhIHByYW1p IGRlJycgbWVhbnMgIkNvbmNlcm5pbmcgYWxsIHRoZSB0aGluZ3MgWCB0aGF0IGV4aXN0cywgY29u Y2VybmluZyBhdCBsZWFzdCBvbmUgdGhpbmcgWTogWCBsb3ZlcyBZIi4gVGhpcyBpcyB0aGUgc2Ft ZSBhcyAiQWxsIHRoaW5ncyBsb3ZlIGF0IGxlYXN0IG9uZSB0aGluZy4iLCB3aGVyZSB0aGUgInRo aW5nKHMpIiBjYW4gYmUgYW55dGhpbmcsIGluY2x1ZGluZyB0aGUgdGhpbmcgaXRzZWxmLiBOb3Rl IGhlcmUgdGhhdCAnJ2RlJycgY2FuIHJlZmVyIHRvIGRpZmZlcmVudCB0aGluZ3MgZm9yIGVhY2gg JydkYScnIC0gdGhlIHRoaW5nIHdoaWNoIGlzIHJlZmVycmVkIHRvIGJ5ICcnZGUnJyBpcyBkZXBl bmRlbnQgb24gdGhlICcnZGEnJywgc2luY2UgaXQgY2FtZSBiZWZvcmUgaXQgaW4gdGhlIHByZW5l eCwgdGhlcmVmb3JlIGVhY2ggdGhpbmcgbWlnaHQgbG92ZSBzb21ldGhpbmcgZGlmZmVyZW50LiBJ ZiB3ZSBzd2l0Y2hlZCB0aGUgcGxhY2VzIG9mICcnZGEnJyBhbmQgJydkZScnIGluIHRoZSBwcmVu ZXgsIGEgZGlmZmVyZW50IHJlc3VsdCB3b3VsZCBhcmlzZTogJydkZSBybyBkYSB6byd1IGRhIHBy YW1pIGRlJycgPSAiQ29uY2VybmluZyBhdCBsZWFzdCBvbmUgdGhpbmcgWSwgY29uY2VybmluZyBh bGwgWCB3aGljaCBleGlzdHM6IFggbG92ZXMgWSIsIG1lYW5pbmcgIlRoZXJlIGV4aXN0cyBhdCBs ZWFzdCBvbmUgdGhpbmcgd2hpY2ggZXZlcnl0aGluZyBsb3ZlcyIuCgpPZiBjb3Vyc2UsIGJvdGgg Y2xhaW1zIGFyZSBjb21wbGV0ZWx5IGZhbHNlLiBUaGVyZSBhcmUgbWFueSB0aGluZ3Mgd2hpY2gg bG92ZXMgbm90aGluZyAtIHJvY2tzLCBvciBhYnN0cmFjdCBjb25jZXB0cywgZm9yIGV4YW1wbGUu IExpa2V3aXNlLCBpdCdzIGltcG9zc2libGUgdG8gY29uY2lldmUgb2Ygc29tZXRoaW5nIHdoaWNo IGV2ZXJ5dGhpbmcgbG92ZXMsIHNpbmNlICJldmVyeXRoaW5nIiBhbHNvIGVuY29tcGFzc2VzIG5v bi1zZW50aWVudCB0aGluZ3MuIFdlIG5lZWQgYmV0dGVyIHdheXMgdG8gcmVzdHJpY3Qgd2hhdCB0 aGVzZSB2YXJpYWJsZXMgY2FuIHBvaW50IHRvLiBPbmUgZ29vZCB3YXkgb2YgZG9pbmcgaXQgaXMg dG8gbWFrZSB0aGVtIHRoZSBzdWJqZWN0IG9mIGEgcmVsYXRpdmUgY2xhdXNlOgoKJydybyBkaSBw b2kgcmVtbmEgem8ndSBiaXJrYSBkaScnID0gIkNvbmNlcm5pbmcgYWxsIFggdGhhdCBleGlzdHMs IHdoaWNoIGlzIGh1bWFuOiBYIGhhcyBvbmUgb3IgbW9yZSBhcm1zLiIgb3IgIkFsbCBodW1hbnMg aGF2ZSBhcm1zIiwgd2hpY2ggaXMgdHJ1ZSwgYXQgbGVhc3Qgd2hlbiBzcGVha2luZyBpbiBhIHBv dGVudGlhbCwgdGltZWxlc3Mgc2Vuc2UuCgpfXycnYmlya2EnJ19fIHgxIGlzIGFuIGFybSBvZiB4 MgoKCgpXaGVuIHJlc3RyaWN0aW5nIGNsYWltcyB1c2luZyB0aGlzIGtpbmQgb2YgbG9naWNhbCAi ZXhpc3RlbnRpYWwiIHZhcmlhYmxlLCBpdCdzIHZlcnkgaW1wb3J0YW50IHRvIHJlbWVtYmVyIHRo YXQgdW5sZXNzIHRoZXJlIGlzIGFuIGV4cGxpY2l0ICcnbm8nJyBhcyBhIHF1YW50aWZpZXIsIHRo ZXNlIGtpbmQgb2Ygc3RhdGVtZW50cyBhbHdheXMgaW1wbHkgdGhhdCB0aGVyZSBfX2FjdHVhbGx5 IGV4aXN0c19fIHNvbWV0aGluZyB3aGljaCBjYW4gYmUgcmVmZXJyZWQgdG8gYnkgJydkYScnLiBU aGVyZWZvcmUsIGFueSBraW5kIG9mIG5vbi1uZWdhdGVkIHN0YXRlbWVudCB3aGVyZSAnJ2RhJycg cG9pbnRzIHRvIHNvbWV0aGluZyB3aGljaCBkb2VzIG5vdCBleGlzdCBpcyBmYWxzZSwgYXMgaW4g dGhpcyBleGFtcGxlOiAnJ3JvIGRhIHBvaSBwYXZ5c2VsamlybmEgem8ndSBkYSBzZSBqaXJuYScn IC0gIkFsbCB1bmljb3JucyBoYXZlIGhvcm5zIi4gVGhpcyBpcyB3cm9uZyBiZWNhdXNlLCBzaW5j ZSAnJ2RhJycgaXMgZXhpc3RlbnNpYWwsIGl0IGFsc28gbWVhbnMgdGhhdCB0aGVyZSBtdXN0IGV4 aXN0IGF0IGxlYXN0IG9uZSB1bmljb3JuLgoKSW50ZXJlc3RpbmdseSwgd2hlbiB1c2luZyBhIHJl bGF0aXZlIGNsYXVzZSwgdGhlIHZhcmlhYmxlIGlzIGJlaW5nIHJlc3RyaWN0ZWQgcmVnYXJkbGVz cyBvZiB3aGV0aGVyIHlvdSB1c2UgJydwb2knJyBvciAnJ25vaScnLiBUaGlzIGlzIGJlY2F1c2Ug JydyZSBkYSBub2kgZ2Vya3UnJyBzdGlsbCBvbmx5IGNhbiByZWZlciB0byB0d28gdGhpbmdzIHdo aWNoIGFyZSBodW1hbnMuIFRoZXJlZm9yZSwgJydub2knJyBtYWtlcyBsaXR0bGUgc2Vuc2Ugd2l0 aCAnJ2RhJycvJydkZScnLycnZGknJy4gQW55IGNsYXVzZSBpcyBhbHdheXMgcmVzdHJpY3RpdmUs IHVubGVzcyBpdCdzIHJlYWxseSBzdHVwaWQgYW5kIG9idmlvdXMgbGlrZSAnJ2RlIG5vaSBnZXJr dSBjdSBnZXJrdScnLgoKSW4gZmFjdCwgeW91IGRvbid0IHJlYWxseSBuZWVkIHRoZSBwcmVuZXgg dG8gZGVmaW5lIHRoZSB2YXJpYWJsZXMuIFlvdSBjYW4gdXNlIHRoZW0gZGlyZWN0bHkgYXMgc3Vt dGkgaW4gdGhlIGJyaWRpLCBhbmQgcXVhbnRpZnkgdGhlbSB0aGVyZS4gWW91IG9ubHkgbmVlZCB0 byBxdWFudGlmeSB0aGVtIHRoZSBmaXJzdCB0aW1lIHRoZXkgYXBwZWFyLCB0aG91Z2guIFRodXMs IHRoZSBzZW50ZW5jZSBhYm91dCBodW1hbnMgaGF2aW5nIGFybXMgY291bGQgYmUgdHVybmVkIGlu dG8gJydiaXJrYSBybyBkaSBwb2kgcmVtbmEnJy4gVGhlIG9yZGVyIG9mIHRoZSB2YXJpYWJsZXMg c3RpbGwgbWF0dGVycyB0aG91Z2gsIGFuZCBzbyB0aGUgcHJlbmV4IGNhbiBiZSB1c2VkIHRvIGF2 b2lkIGhhdmluZyB0byBtZXNzIHVwIHlvdXIgYnJpZGkgdG8gcGxhY2UgdGhlIHZhcmlhYmxlcyBp biB0aGUgY29ycmVjdCBvcmRlci4gV2hlbiBoYXZpbmcgbW9yZSB2YXJpYWJsZXMsIGEgcHJlbmV4 IGlzIHVzdWFsbHkgYSBnb29kIGlkZWEuCgpUaGUgc2Vjb25kIGtpbmQgb2YgbG9naWNhbCB3b3Jk cyBhcmUgYmFzaWNhbGx5IHRoZSBzYW1lIGFzIHRoZSB0aHJlZSB3ZSBoYXZlIGFscmVhZHkgYmVl biB0aG91Z2gsIGJ1dCB0aGVzZSBhcmUgYnJpa2EnaSBpbnN0ZWFkIG9mIHN1bWthJ2k6CgpfXycn YnUnYScnX18gbG9naWNhbGx5IHF1YW50aWZpZWQgZXhpc3RlbnRpYWwgYnJpa2EnaSAxCgpfXycn YnUnZScnX18gbG9naWNhbGx5IHF1YW50aWZpZWQgZXhpc3RlbnRpYWwgYnJpa2EnaSAyCgpfXycn YnUnaScnX18gbG9naWNhbGx5IHF1YW50aWZpZWQgZXhpc3RlbnRpYWwgYnJpa2EnaSAzCgpUaGVz ZSB3b3JrIHByZXR0eSBtdWNoIHRoZSBzYW1lIHdheSBhcyB0aGUgb3RoZXIgdGhyZWUsIGJ1dCB0 aGVyZSBhcmUgYSBmZXcgcG9pbnRzIHdoaWNoIGFyZSBpbXBvcnRhbnQgdG8gbWVudGlvbjoKClNp bmNlIG9ubHkgdGVybXMgY2FuIGdvIGluIHRoZSBwcmVuZXgsIHRoZXNlIGJyaWthJ2kgbmVlZCB0 byBoYXZlIGEgcXVhbnRpZmllciBpbiBvcmRlciB0byBtYWtlIHRoZW0gaW50byBzdW10aS4gV2hl biBxdWFudGlmaWVkIGluIHRoZSBwcmVuZXgsIGhvd2V2ZXIsIHRoZSBxdWFudGlmaWVyIHdvcmtz IHZlcnkgZGlmZmVyZW50IGZyb20gcXVhbnRpZmllcnMgd2l0aCBub3JtYWwgc2VsYnJpOiBJbnN0 ZWFkIG9mIHF1YW50aWZ5aW5nIHRoZSBhbW91bnQgb2YgdGhpbmdzIHdoaWNoIGZpdHMgdGhlIHgx IG9mIHRoZSBzZWxicmkgdmFyaWFibGUsIGl0IGRpcmVjdGx5IHF1YW50aWZpZXMgdGhlIGFtb3Vu dCBvZiBzZWxicmkgd2hpY2ggYXBwbGllcy4gQWdhaW4sIHRoZSBkZWZhdWx0IHF1YW50aWZpZXIg aXMgJydzbyd1JycuIFRodXMsIGluc3RlYWQgb2YgJydyZSBidSdhIHpvJ3UnJyBtZWFuaW5nICJD b25jZXJuaW5nIHR3byB0aGluZ3Mgd2hpY2ggaXMgaW4gcmVsYXRpb25zaGlwIFg6IiwgaXQgbWVh bnMgIkNvbmNlcm5pbmcgdHdvIHJlbGF0aW9uc2hpcHMgWDoiCgoKCkl0J3MgcHJvYmFibHkgZ29v ZCB0byBzZWUgYW4gZXhhbXBsZSBvZiAnJ2J1J2EnJyBwdXQgdG8gcHJhY3RpY2U6CgonJ3JvIGRh IGJ1J2EgbGEgLmJhYi4nJyA9ICJDb25zaWRlcmluZyBhbGwgWCB3aGljaCBleGlzdHM6IFggaXMg aW4gYXQgbGVhc3Qgb25lIHJlbGF0aW9uc2hpcCB3aXRoIEJvYiIgPSAiRXZlcnl0aGluZyBpcyBy ZWxhdGVkIHRvIEJvYiBpbiBhdCBsZWFzdCBvbmUgd2F5LiIuIE5vdGljZSBhZ2FpbiB0aGUgb3Jk ZXIgbWF0dGVyczogJydzdSdvIGJ1J2Egcm8gZGEgem8ndSBkYSBidSdhIGxhIC5iYWIuJycgbWVh bnM6ICJUaGVyZSBpcyBhdCBsZWFzdCBvbmUgcmVsYXRpb25zaGlwIHN1Y2ggdGhhdCBldmVyeXRo aW5nIHRoYXQgZXhpc3RzIGlzIGluIHRoYXQgcmVsYXRpb25zaGlwIHdpdGggQm9iIi4gVGhlIGZp cnN0IHN0YXRlbWVudCBpcyB0cnVlIC0gZm9yIGFueSBvbmUgdGhpbmcsIG9uZSBjYW4gaW5kZWVk IG1ha2UgdXAgc29tZSBzZWxicmkgd2hpY2ggcmVsYXRlcyBhbnkgZ3V5IGNhbGxlZCBCb2IgYW5k IGl0LiBCdXQgSSdtIG5vdCBzdXJlIHRoZSBsYXR0ZXIgaXMgdHJ1ZSAtIHRoYXQgb25lIGNhbiBt YWtlIGEgc2VsYnJpIHdoaWNoIGNhbiByZWxhdGUgYW55dGhpbmcsIG5vIG1hdHRlciB3aGF0IGl0 IGlzLCBhbmQgQm9iLgoKTGV0J3MgaGF2ZSBhbiBleGFtcGxlIHdoaWNoIHF1YW50aWZpZXMgc2Vs YnJpOgoKJydjaSdpIGJ1J2Ugem8ndSBtaSBidSdlIGRvJycgLSAiQ29uY2VybmluZyBhbiBpbmZp bml0ZSBhbW91bnQgb2YgcmVsYXRpb25zaGlwczogSSBhbSBpbiBhbGwgdGhvc2UgcmVsYXRpb25z aGlwIHdpdGggeW91LiIgb3IgIlRoZXJlIGV4aXN0cyBhbiBpbmZpbml0ZSBhbW91bnQgb2YgcmVs YXRpb25zaGlwcyBiZXR3ZWVuIHVzIgoKWW91IGNhbid0IHF1YW50aWZ5IHRoZSBzZWxicmkgdmFy aWFibGVzIGluIHRoZSBicmlkaSBpdHNlbGYsIHRob3VnaC4gVGhlbiBpdCB3aWxsIGFjdCBhcyBh IHN1bXRpOiAnJ21pIGNpJ2kgYnUnYSBkbycnIGlzIG5vdCBhIGJyaWRpLiBUaGVyZSBhcmUgc29t ZSBzaXR1YXRpb24gd2hlcmUgdGhpcyB3aWxsIGJlY29tZSBwcm9ibGVtYXRpYyAtIGxlc3NvbiB0 d2VudHktbmluZSB3aWxsIHRlYWNoIGhvdyB0byBvdmVyY29tZSB0aG9zZSBwcm9ibGVtcy4KCgoK ISFMb2piYW4gTGVzc29ucyAtIExlc3NvbiB0d2VudHktZWlnaHQgKHR5cGVzKQoKVGhpcyBsZXNz b24gYWxvbmcgd2l0aCB0aGUgZm9sbG93aW5nIHRocmVlIGxlc3NvbnMgd2lsbCBiZSBvbiBzZW1h bnRpY3MgLSBob3cgdG8gaW50ZXJwcmV0IHRoZSBtZWFuaW5nIG9mIGNlcnRhaW4gY29uc3RydWN0 cy4gVGhpcyBsZXNzb24gaXMgb24gdGhlIG1lYW5pbmcgb2YgZGlmZmVyZW50IHR5cGVzIG9mIHN1 bXRpLCBhbmQgd2lsbCBnZXQgcGhpbG9zb3BoaWNhbCBhbmQgYSBiaXQgaGF6eS4gVGhlIGZvbGxv d2luZyB0d28gd2lsbCBiZSBvbiBhYnN0cmFjdGlvbnMsIHdoaWNoLCBldmVuIHRob3VnaCB5b3Ug YWxyZWFkeSBiZWNhbWUgZmFtaWxpYXIgd2l0aCB0aGVtIHR3ZW50eS10d28gbGVzc29ucyBhZ28s IHdpbGwgYmVjb21lIG1vcmUgdGVjaG5pY2FsIGFzIEkgYXR0ZW1wdCB0byBleHBsYWluIHRoZWly IHNlbWFudGljIGFuZCBncmFtbWF0aWNhbCBwcm9wZXJ0aWVzLgoKCgpUZWFjaGluZyAoYW5kIGxl YXJuaW5nKSBzZW1hbnRpY3MgaXMgbXVjaCBtb3JlIHRyaWNreSB0aGFuIHRlYWNoaW5nIGdyYW1t YXIsIGVzcGVjaWFsbHkgaW4gTG9qYmFuLCB3aGVyZSBncmFtbWFyIGlzIGJsYWNrLW9yLXdoaXRl LCBidXQgc2VtYW50aWNzIGlzbid0LiBUaGVyZWZvcmUsIEkgZmluZCBpdCBuZWNlc3NhcnkgdG8g cmVwZWF0IHRoZSBkaXNjbGFpbWVyIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGhpcmQgcGFy dCBvZiBXYXZlbGVzc29uc2NvbnRpbnVlZDogVGhlIGZvbGxvd2luZyBpcyBub3Qgb2ZmaWNpYWws IGJ1dCByYXRoZXIgYW4gKGVkdWNhdGVkKSBvcGluaW9uIG9uIHRoZSBsYW5ndWFnZS4gCgoKCldo ZXJlIGJhZCBncmFtbWFyIGlzIGVhc3kgdG8gc3BvdCBpbiBMb2piYW4sIGluIGZhY3QgaXQncyB1 bmFtYmlndW91c2x5IGNvcnJlY3Qgb3Igbm90LCBzYXlpbmcgdGhhdCBhIGp1ZnJhIGlzIHNlbWFu dGljYWxseSB3cm9uZyBpcyB0aGUgc2FtZSBhcyBzYXlpbmcgdGhhdCB0aGUgc3BlYWtlciBpcyB1 c2luZyBMb2piYW4gdG8gdGhpbmsgd3JvbmdseSBhYm91dCB0aGUgd29ybGQuIEl0J3Mgbm90IHNh eWluZyAiWW91IGNhbid0IHNheSBYIiBhcyBtdWNoIGFzICJZb3UgY2FuJ3QgaW50ZXJwcmV0IFgg aW4gdGhpcyB3YXksIHlvdSBzaG91bGQgaW50ZXJwcmV0IGl0IHRoaXMgd2F5Ii4gUGxhY2luZyB0 aGVzZSByZXN0cmljdGlvbnMgb24gY29tcG9zaW5nIGFuZCB1bmRlcnN0YW5kaW5nIGlzIGEgc2xp cHBlcnkgc2xvcGUgbGVhZGluZyB0byByZXN0cmljdGlvbnMgb24gY3JlYXRpdml0eSwgYW5kIGlu IHRoZSB3b3JzdCBjYXNlLCBwcmVzdXBwb3Npbmcgb2YgYSBjZXJ0YWluIG1ldGFwaHlzaWNhbCB2 aWV3cG9pbnQgYW5kIGV4Y2x1ZGluZyBvdGhlcnMuCgoKClRoZW4gd2h5IGluY2x1ZGUgc2VtYW50 aWMgc3RhbmRhcmRzIGluIGEgdGV4dGJvb2s/IFNob3VsZG4ndCBhbnkgc3BlYWtlciBiZSBmcmVl IHRvIHNheSBhbnl0aGluZyBhbmQgYW55IGxpc3RlbmVyIGJlIGZyZWUgdG8gbGV0IHRoYXQgc3Bl ZWNoIG1lYW4gd2hhdGV2ZXIgdGhleSB3YW50PwoKVGhpcyBpcyBhIG1hdHRlciBvZiBtZWFzdXJl LiBHaXZlbiB0aGF0IGV4dHJlbWUsIGlmIG5vIHNlbWFudGljIHN0YW5kYXJkcyB3ZXJlIHNldCwg YW55dGhpbmcgY291bGQgbWVhbiBldmVyeXRoaW5nLCBhbmQgYWxsIGNvbW11bmljYXRpb24gd291 bGQgYmUgbWVhbmluZ2xlc3MuIEluIGFueSBsYW5ndWFnZSB3aGljaCBhaW1zIHRvIGZhY2lsaXRh dGUgY29tbXVuaWNhdGlvbiwgb25lIG11c3QgYmUgYWJsZSB0byBiZSBhYmxlIHRvIGV4cHJlc3Mg b25lc2VsZiBpbiBhIHdheSB3aGljaCBjYW4gYmUgdHJ1c3RlZCB0byBiZSBpbnRlcnByZXRlZCBp biB0aGUgZGVzaXJlZCB3YXkuIFNlbWFudGljIHJ1bGVzIG9mIExvamJhbiBkb2VzIG5vdCBleGlz dCBpbiBvcmRlciB0byBwcmV2ZW50IHBlb3BsZSBmcm9tIHNheWluZyBBLiBUaGUgZXhpc3QgdG8g cHJldmVudCBwZW9wbGUgZnJvbSBzYXlpbmcgQiBhbmQgaGF2ZSBwZW9wbGUgdGhpbmsgeW91IG1l YW50IEEuCgoKClRoaXMgbGVzc29uIGlzIG9uIHR5cGVzLiBUaGUgd29yZCBfX3R5cGVfXywgaW5m b3JtYWxseSB0cmFuc2xhdGVkIHRvICcna2xlc2knJywgaXMgdXNlZCBieSBMb2piYW5pc3RzIHRv IGRlc2NyaWJlIHRoZSBleGlzdGVuc2lhbCBuYXR1cmUgb2YgdGhlIHRoaW5ncyBzdW10aSBkZXNj cmliZS4gVGhpcyBuYXR1cmUgaXMsIG11c3QgYmUsIHRoZSBzYW1lIGFzIHRoZSBuYXR1cmUgb2Yg dGhlIHRoaW5ncyBkZXNjcmliZWQgYnkgb3RoZXIgbGFuZ3VhZ2VzIHN1Y2ggYXMgRW5nbGlzaC4g SG93ZXZlciwgaW4gTG9qYmFuLCB0aGUgZGlmZmVyZW50IHdheXMgb2YgbWFraW5nIHN1bXRpIGRl bm90ZXMgd2hpY2ggdHlwZSBhIHN1bXRpIGJlbG9uZ3MgdG8sIHNvIHdoaWxlIHRoZSBleGFjdCBu YXR1cmUgb2Ygc3VtdGkgY2FuIGJlIGlnbm9yZWQgaW4gRW5nbGlzaCwgTG9qYmFuaXN0cyBoYXZl IHRvIGRlYWwgd2l0aCB0aGVtLgoKCgpXaGVuIHNwZWFraW5nIG9mIHR5cGVzLCBMb2piYW5pc3Rz IG9mdGVuIG1lbnRpb24gd2hhdCB0eXBlIGEgc3VtdGkgX19yZWFsbHkgaXNfXywgYnV0IHdoZW4g c3RhcnRpbmcgZnJvbSB0aGUgdG9wLCB3ZSBoYXZlIHRvIHJlbWVtYmVyIHRoYXQgdGhpcyBpcyBu b3QgcGhpbG9zb3BoaWNhbGx5IHdlbGwgZ3JvdW5kZWQuIFRha2luZyBhIG1hdGVyaWFsaXN0aWMg dmlld3BvaW50LCB0aGUgbmF0dXJhbCB3b3JsZCBvZiBwYXJ0aWNsZXMgYW5kIHdhdmVzIGRvZXMg bm90IGNvcnJlc3BvbmQgd2VsbCB3aXRoIGh1bWFuIHVuZGVyc3RhbmRpbmcgb2Ygc2F5LCBoYXRy ZWQsIHdoaWNoIGFyZSBub3QgZGV0ZXJtaW5lZCBieSBhbnkgc3BlY2lmaWMgcGFydGljbGVzLCBu b3QgYW55IHNwZWNpZmljIGJyYWluIGFjdGl2aXR5LCBidXQgYSBwdXJlbHkgYWJzdHJhY3QgY29u Y2VwdC4gU2ltaWxhcmx5LCBpbiBhbiBleHRyZW1lIGluZHVjdGlvbmlzdCB2aWV3cG9pbnQsIHN1 Y2ggYXMgdGhhdCB0YWtlbiBieSBIdW1lLCBhbGwgd2UgaHVtYW5zIGV4cGVyaWVuY2UgYXJlIHN1 YmplY3RpdmUgaW1wcmVzc2lvbnMgb3ZlciB0aW1lIC0gYSBsb25nIHN0cmluZyBvZiBldmVudHMs IG9yLCBzb21lIHBlb3BsZSBhcmd1cmUsIGV2ZW4gYSBidW5jaCBvZiBxdWFsaWEgKFRoaXMgaXMg X19ncmVlbl9fLiBUaGlzIGlzIF9fY3Jpc3B5X18uIFRoaXMgaXMgX19yb3VuZF9fLiBUaGlzIGlz IF9fdGFzdHlfXy4gPT4gIlRoaXMgaXMgYW4gYXBwbGUiLikgVGhpcywgaG93ZXZlciwgZG9lcyBu b3QgY29ycmVzcG9uZCB3ZWxsIHRvIGh1bWFuIHVuZGVyc3RhbmRpbmcgb2Ygc2F5LCBhIGNhdCwg d2hvc2UgZXhpc3RhbmNlIG11c3QgYmUgcHJlc3VtZWQgdG8gY29udGludWUgZXZlbiB3aGVuIGl0 IGludm9rZXMgbm8gcXVhbGlhIGluIGh1bWFucywgYW5kIHdob3NlIHF1YWxpYSB2YXJ5IGFtb25n IGRpZmZlcmVudCBjYXRzLCBhbmQgd2hvc2UgZGVhdGggc21vb3RobHkgc3RyaXBzIGl0IG9mIGl0 cyBjYXRsaWtlIHF1YWxpYS4gCgoKCkluIG90aGVyIHdvcmRzLCB3aGlsZSBvbmUgY2FuIHRha2Ug cGhpbG9zb3BoaWNhbGx5IGNvbnNpc3RlbnQgd29ybGR2aWV3cyB3aGVyZSBvYmplY3RzIGFuZCBj b25jZXB0cyBkb24ndCBleGlzdCwgc3VjaCB3b3JsZHZpZXdzIGFyZSB1bmZydWl0ZnVsIGZvciBj b25kdWN0aW5nIGh1bWFuIGFmZmFpcnM6IEluIG91ciBsaXZlcywgd2Ugc2ltcGx5IG5lZWQgdG8g cmVmZXIgdG8gb2JqZWN0cywgYW5kIHByZXRlbmQgdGhhdCB0aGV5IGFjdHVhbGx5IGV4aXN0IGFz IHN1Y2guIE9uZSBmYW1vdXMgc3RvcnkgdGVsbHMgb2YgYSBwaGlsb3NvcGhlciwgU2FtdWVsIEpv aG5zb24sIHdobywgZnJ1c3RyYXRlZCBhYm91dCB0aGUgcGhpbG9zb3BoaWNhbCBzb3VuZG5lc3Mg YW5kIHVuLXJlZnV0YWJpbGl0eSBvZiBhIGZlbGxvdyBwaGlsb3NvcGhlcidzIGJlbGllZiB0aGF0 IHRoZSBwaHlzaWNhbCB3b3JsZCBkb2VzIG5vdCBleGlzdCwgZnVyaW91c2x5IGtpY2tzIGEgcm9j ayB5ZWxsaW5nICJJIHJlZnV0ZSBpdCBfX3RodXMhX18iCgoKCkluIExvamJhbiwgbW9zdCBzdW10 aSBhcmUgbWFkZSBmcm9tIHNlbGJyaSBvbmUgd2F5IG9yIHRoZSBvdGhlciwgd2hpY2ggbWVhbnMg dGhhdCBhdCB0aGUgY29yZSBvZiBtb3N0IHN1bXRpIGxpZXMgYSBzZWxicmksIGFuIGFjdGlvbiwg c29tZXRoaW5nIHdoaWNoIHNvbWV0aGluZyBfX2RvZXNfXy4gVGhlIFN1bidzIG5vdCB1c3VhbGx5 IHJlZmVycmVkIHRvIGFzIHtsYSBzb2xyaX0sICJUaGUgU3VuIiwgYnV0IG9mdGVuIHtsbyBzb2xy aX0sICJTb21ldGhpbmcgd2hpY2ggaXMgc3VubmluZyIuIFRoZXJlIGFyZSBtYW55IGNvbmZ1c2lu ZyBwaGlsb3NvcGhpY2FsIGltcGxpY2F0aW9ucyBvZiB0aGlzOiBBcyBzdGF0ZWQgYmVmb3JlLCBp dCdzIHNoYWt5IGF0IGJlc3Qgd2hhdCBpdCBtZWFucyAidG8gY2F0IiBhbmQgd2hlbiBzb21ldGhp bmcgInN0b3BzIGNhdHRpbmciLiBBIGZpY3Rpb25hbCBsYW5ndWFnZSB3aXRoIHNpbWlsYXIgcHJv cGVydGllcyBpcyBkZXNjcmliZXMgaW4gYSBuZWF0IHNob3J0IHN0b3J5LCAiVGzDtm4sIFVxYmFy LCBPcmJpcyBUZXJ0aXVzIiAod2hlcmUgIlRoZSBvbiByb3NlIG92ZXIgdGhlIG9jZWFuIiBpcyBw aHJhc2VkIHVzaW5nIHNpbWlsYXIgdmVyYi9hZHZlcmIgZGVyaXZlZCBub3VuczogIlVwd2FyZCBi ZWhpbmQgdGhlIG9uc3RyZWFtaW5nIGl0IG1vb25lZCIpLiBJbiB0aGF0IHNob3J0IHN0b3J5LCB0 aGUgbGFuZ3VhZ2UgaXMgYWJvdXQgdG8gbGVhZCB0byB0aGUgY29sbGFwc2Ugb2Ygc29jaWV0eSBi ZWNhdXNlIHRoZSB3b3JsZCB2aWV3IHdoaWNoIHN1Y2ggYSBsYW5ndWFnZSBpbXBsaWVzIGlzIHVu Zml0IHRvIGRlYWxpbmcgd2l0aCB0aGUgcmVhbGl0aWVzIG9mIEVhcnRoLgoKCgpUaGUgdGFrZSBo b21lIHBvaW50IG9mIGFsbCB0aGlzIGlzOiBQcmVjaXNlIGRlZmluaXRpb25zIG9mIHRoZSBkaWZm ZXJlbnQgdHlwZXMgb2Ygc3VtdGkgYXJlIGltcG9zc2libGUsIGJlY2F1c2UgdGhlc2UgY2NhdGVn b3JpZXMgZG8gbm90IGNvcnJlc3BvbmQgdG8gdGhlIHJlYWwgd29ybGQsIGJ1dCB3ZSBuZWVkIHRo ZXNlIGNhdGVnb3JpZXMuCgpUaGVyZSBtYXkgcG9zc2libHkgYmUgYW4gaW5maW5pdGUgYW1vdW50 cyBvZiB0eXBlcywgYnV0IGhlcmUgSSdsbCBnbyB0aHJvdWdoIHRoZSBvbmVzIHdoaWNoIGFyZSBk ZWFsdCB3aXRoIGluIExvamJhbjoKCgoKTWF0ZXJpYWwgb2JqZWN0cyBhcmUgcGVyaGFwcyB0aGUg ZWFzaWVzdCB0byB1bmRlcnN0YW5kLCBldmVuIHRob3VnaCB0aGV5J3JlIGhhcmQgdG8gZGVmZW5k IHBoaWxvc29waGljYWxseS4gVGhleSBhbHdheXMgaGF2ZSBhIHBsYWNlIGluIGJvdGggdGltZSBh bmQgc3BhY2UsIGJ1dCB0aGV5J3JlIGNvbnNpZGVyZWQgYmVpbmcgYSBjb25zdGFudCBleGlzdGlu ZyB0aHJvdWdoIHRpbWUuIFRoYXQgaXMsIG9iamVjdHMgYXJlIG5vdCBjb25zaWRlcmVkIHRlbXBv cmFsbHk6IEEgYmFuYW5hIGNhcnJpZXMgd2l0aCBpdCBpdHMgdW5jaGFuZ2luZyBiYW5hbmEtbmVz cyBldmVuIGFzIGl0IGFnZXMsIHVudGlsIGl0IGJlZ2lucyBicmVha2luZyBkb3duIGFuZCBzdG9w IGJlaW5nIGEgYmFuYW5hIGF0IGFsbC4gSWYgb25lIGNvdWxkIGZyZWV6ZSB0aW1lLCBhbGwgYmFu YW5hcyB3b3VsZCBzdGF5IGJhbmFuYXMgZHVyaW5nIHRoYXQgZnJvemVuIHRpbWUuCgoKCkV2ZW50 cyBhcmUsIGxpa2Ugb2JqZWN0cywgcGxhY2VzIGluIHNwYWNlIGFuZCB0aW1lLCBidXQgdGhlc2Ug YXJlIGNvbnNpZGVyZWQgdW5mb2xkaW5nIG92ZXIgdGltZTogVGhlIHRlbXBvcmFsIGFzcGVjdCBp cyBhcyBpbXBvcnRhbnQgYXMgdGhlIHNwYWNpYWwuIEEgYmFuYW5hIGNhbiBiZSBjb25zaWRlcmVk IGFuIGV2ZW50LCBidXQgaW4gdGhhdCBjYXNlLCB0aGUgZXZlbnQgb2YgYmVpbmcgYSBiYW5hbmEg aXMgcmVhbGx5IGNvbXBvc2VkIG9mIHRoZSBjaGFuZ2VzIHRoZSBiYW5hbmEgdW5kZXJnb2VzIG92 ZXIgdGltZSwgd2hlcmVhcyB3aGF0IG1ha2VzIGEgYmFuYW5hIGFuIG9iamVjdCBpcyBhbGwgdGhh dCwgd2hpY2ggZG9lc24ndCBjaGFuZ2UuIEZyZWV6aW5nIHRpbWUgd291bGQgYWxzbyBmcmVlemUg dGhlIGV2ZW50IG9mIGJlaW5nIGEgYmFuYW5hLgoKCgpGdW5jdGlvbnMgYXJlIGEgdGVybSB1c2Vk IGJ5IGEgZmV3IExvamJhbmlzdHMgdG8gZGVzY3JpYmUgYSBncm91cCBvZiB0eXBlcy4gQWxsIGZ1 bmN0aW9ucyBhcmUgYWJzdHJhY3QgY29uY2VwdHMgYW5kIGFzIHN1Y2ggZG9lc24ndCByZWFsbHkg ZXhpc3QgaW4gdGhlIHJlYWwgd29ybGQgb24gdGhlaXIgb3duLiBIb3cgdGhlIHNlbWFudGljcyBv ZiBmdW5jdGlvbnMgaW50ZXJwbGF5cyB3aXRoIHRoZWlyIGdyYW1tYXIgaXMgdGhlIHN1YmplY3Qg b2YgbGVzc29uIHRoaXJ0eSwgaGVyZSwgd2UgZm9jdXMgb24gdGhlaXIgc2VtYW50aWNzIGFsb25l LiBUaGVyZSBhcmUgYSBmZXcgdHlwZXMgb2YgZnVuY3Rpb25zOgoKCgpTZWxicmkgYXJlIHNvbWV0 aGluZyB5b3UncmUgYWxyZWFkeSB3ZWxsIGZhbWlsaWFyIHdpdGguIEl0IGRlc2NyaWJlcyBhbiBh Y3Qgb2YgZG9pbmcgb3IgYmVpbmcgaW4gaXRzZWxmLiAnJ2NyaW5vJycgdW5kZXJzdG9vZCBhcyBh IHNlbGJyaSAJbWVhbnMgImJlaW5nIGdyZWVuIiwgJydkYXJ4aScnIGFzIGEgc2VsYnJpIG1lYW5z ICJ0byBoaXQiLiBBIHNlbGJyaSBpcyBkZXZvaWQgb2Ygd2hvJ3MgZG9pbmcgb3IgYmVpbmcgdGhh dCBzZWxicmksIGFuZCBhcyBzdWNoLCB0aGV5J3JlIGRpdm9yY2VkIGZyb20gYW55IHBhcnRpY3Vs YXIgaW5zdGFuY2Ugb2YgYmVpbmcgZ3JlZW4gb3IgaGl0dGluZywgYW5kIGNhbiBhcyBzdWNoIGJl IHVuZGVyc3Rvb2QgYXMgYSBraW5kIG9mIGdlbmVyYWxpemVkIGV2ZW50cy4gVGhleSdyZSB1c2Vk IGZvciBzZW50ZW5jZXMgd2hlcmUgbm8gcGFydGljdWxhciBpbnN0YW5jZSBvZiB0aGF0IHNlbGJy aSBiZWluZyBhcHBsaWVzIGNvbWVzIHRvIG1pbmQuIEZvciBpbnN0YW5jZSwgaWYgSSdtIGxvb2tp bmcgZm9yd2FyZCB0byBteSB3ZWRkaW5nIG5leHQgd2VkbmVzZGF5LCBJJ20gdGhpbmtpbmcgYWJv dXQgc29tZSBldmVudCBwbGFjZWQgaW4gc3BhY2UgYW5kIHRpbWUgKGV2ZW4gaWYgdGhlIHdlZGRp bmcgbmV2ZXIgYWN0dWFsbHkgdGFrZXMgcGxhY2UgZm9yIHNvbWUgc2FkIHJlYXNvbiksIHdoZXJl YXMgaWYgSSdtIHNheWluZyB0aGF0IEknZCBsaWtlIHRvIGJlY29tZSBtYXJyaWVkIG9uZSBkYXks IEkgZGVzaXJlIHRoZSBhY3Qgb2YgbWFycmlhZ2UsIGFuZCB0aHVzIEkgZGVzaXJlIHRoZSBzZWxi cmksIG9yIHJhdGhlciwgdGhhdCB0aGUgc2VsYnJpIGJlIGFwcGxpZWQgdG8gbWUuCgoKCkFtb3Vu dHMgaGF2ZSB0aGUgc2FtZSBncmFtbWF0aWNhbCBwcm9wZXJ0aWVzIGFzIHNlbGJyaSwgYXMgeW91 J2xsIHNlZSBpbiB0d28gbGVzc29ucy4gU2VtYW50aWNhbGx5LCBob3dldmVyLCB0aGV5J3JlIGRp c3RpbmN0LiBBbiBhbW91bnQgaXMgX19ob3cgbXVjaCBzb21ldGhpbmcgZml0cyBhIHNlbGJyaV9f LCB3aGljaCBpcyBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnQgZnJvbSB0aGUgc2VsYnJp IGl0c2VsZi4gQW4gYW1vdW50IGlzIHNvbWUga2luZCBvZiBudW1iZXIsIG9yIGNhbiBiZSByZXBy ZXNlbnRlZCBieSBzb21lIG51bWJlciwgZXhhY3Qgb3IgaW5leGFjdCwgbm8gbWF0dGVyIHdoZXRo ZXIgd2hhdCBpcyBxdWFudGlmaWVkIGlzIHByYWN0aWNhbGx5IG1lYXN1cmFibGUuIAoKVGhlcmUg aXMgc29tZSBkaXNhZ3JlZW1lbnQgYWJvdXQgd2hldGhlciBpdCdzIGNvcnJlY3QgdG8gdXNlIG5p IHRvIHF1YW50aWZ5IHNvbWV0aGluZyB3aGljaCBpcyB1bm1lYXN1cmFibGUuIFRodXMsIHRoZSBh bW91bnQgb2YgbXkgZ3JlZW5uZXNzIGlzIGNlcnRhaW5seSB2YWxpZCwgc2luY2UgdGhhdCBjb3Vs ZCBiZSBtZWFzdXJlZCBieSBzYXksIGEgZGlnaXRhbCBjYW1lcmEsIGJ1dCBzcGVha2luZyBhYm91 dCB0aGUgYW1vdW50IG9mIG1lIGJlaW5nIEJvYidzIGZyaWVuZCBtYXkgbm90IGJlIGFjY2VwdGVk IG1ldGFwaHlzaWNhbGx5LiBBIGdyZWF0IGV4YW1wbGUgd2hpY2ggdW5kZXJzY29yZXMgdGhlIGRp ZmZlcmVuY2UgYmV0d2VlbiBhbW91bnRzIGFuZCBzZWxicmkgYXBwbGllZCB0byBzdW10aSBpcyB0 aGUgZm9sbG93aW5nOiAiSSBjaGFuZ2UgaW4gYmxhY2tuZXNzIi4gV2hlbiAiYmxhY2tuZXNzIiBp cyBjb25zaWRlcmVkIGEgc2VsYnJpLCBpdCBtZWFucyB0aGF0IGNoYW5nZSBmcm9tIGJlaW5nIGJs YWNrIHRvIG5vdCBiZWluZyBibGFjayBvciB0aGUgb3RoZXIgd2F5IGFyb3VuZC4gV2hlbiAiYmxh Y2tuZXNzIiBpcyBjb25zaWRlcmVkIGFuIGFtb3VudCwgaXQgbWVhbnMgbXkgc2tpbiB0dXJucyBi bGFja2VyIG9yIGxlc3MgYmxhY2sgKGFzIGl0IGRvZXMgZHVyaW5nIHRoZSB3aW50ZXIgd2hlbiB0 aGVyZSdzIGxpdHRsZSBzdW5saWdodCkuCgoKCkNvbmNlcHRzIGFyZSBtYXliZSBmdW5jdGlvbnMg YW5kIG1heWJlIHRoZXkncmUgbm90IGRlcGVuZGluZyBvbiB3aG8geW91IGFzay4gQWdhaW4sIGxl c3NvbiB0aGlydHkgZXhwbG9yZXMgdGhlIHJlbGF0aW9uIGJldHdlZW4gY29uY2VwdHMgYW5kIHdo YXQgbWFrZXMgYWJ0cmFjdGlvbnMgYmUgY29uc2lkZXJlZCBmdW5jdGlvbnMuIENvbmNlcHRzIGFy ZSwgdW5saWtlIGFtb3VudHMgb3Igc2VsYnJpLCBhbHdheXMgY29tcGxldGVseSBzZXBlcmF0ZWQg ZnJvbSBhbnlvbmUgZml0dGluZyB0aGF0IGNvbmNlcHQuIEEgY29uY2VwdCBkb2VzIG5vdCBleGlz dCBpbiB0aGUgcmVhbCB3b3JsZC4gQSBjb25jZXB0IGlzIG5vdCBldmVuIHJlcHJlc2VudGVkIGlu IHRoZSByZWFsIHdvcmxkLCBsaWtlIGFtb3VudHMgb3Igc2VsYnJpIGNhbiBiZS4gQSBjb25jZXB0 IGV4aXN0cyBvbmx5IGluIHRoZSBtaW5kcyBvZiBwZW9wbGUsIGFuZCBpcyB1bmRlcnN0b29kIGFz IHRoZSBtZWFuaW5nIHRoZSB3b3JkLiBUaHVzICJsb3ZlIiB1bmRlcnN0b29kIGFzIGEgY29uY2Vw dCBpcyB0aGUgaWRlYSBvZiB3aGF0IGxvdmUgaXMgbm8gbWF0dGVyIHdobyBkb2VzIGl0LiBNYXli ZSBhbiBleGFtcGxlIGNhbiBkZW1vbnN0cmF0ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGFtb3Vu dHMsIHNlbGJyaSBhbmQgY29uY2VwdHM6CgpJbiAiSSBsaWtlIGxvdmluZyIgYW5kICJJIGxpa2Ug YmVpbmcgbG92ZWQiLCB3ZSBhcmUgc3BlYWtpbmcgb2YgYSBzZWxicmkuCgpJbiB0aGUgc2VudGVu Y2UgIkkgbGlrZSBob3cgbXVjaCBJIGxvdmUiLCBJIGxpa2UgYW4gYW1vdW50LCBhbmQKCndoZW4g c2F5aW5nICJJIGxpa2UgbG92ZSIsIEkgcmVmZXIgdG8gdGhlIGNvbmNlcHQgb2YgbG92ZS4KCgoK QnJpZGkgaXMgYSB0eXBlIHdoaWNoIHlvdSdyZSBhbHNvIGZhbWlsaWFyIHdpdGguIEEgYnJpZGkg aXMgY2VydGFpbmx5IG5vdCBhIGZ1bmN0aW9uLCBidXQgaXQgZG9lcyBiZWFyIHNvbWUgcmVsYXRp b24gdG8gZnVuY3Rpb25zLCBhcyB3ZSdsbCBzZWUgbGF0ZXIuIEJyaWRpIHRoZW1zZWx2ZXMgYXJl IGltYWdpbmFyeTsgdGhleSBleGlzdCBub3QgaW4gdGhlIHJlYWwgd29ybGQsIGJ1dCBpbnNpZGUg dGV4dHMsIHRoZSBuZXh0IHR5cGUgdG8gZXhwbGFpbi4gSG93ZXZlciwgYnJpZGkgYXJlIGNvbXBv c2VkIG9mIHdoaWNoZXZlciBzcGVjaWZpYyBzeW1ib2xzIGFyZSB1c2VkIHRvIGV4cHJlc3MgdGhl IGJyaWRpIC0gYmVjYXVzZSBicmlkaSBhcmUgaW1hZ2luYXJ5LCBkaWZmZXJlbnQgc2VudGVuY2Vz IG1heSBleHByZXNzIHRoZSBzYW1lIGJyaWRpIGlmIHVzZWQgaW4gZGlmZmVyZW50IGxhbmd1YWdl cywgdGhlIHdvcmQgb3JkZXIgaXMgY2hhbmdlZCwgb3IgaWYgZGlmZmVyZW50IHdvcmRzIGFyZSB1 c2VkIHRvIHJlZmVyIHRvIHRoZSBzYW1lIHN1bXRpLiBUaHVzICcnbWkgZG8gcHJhbWknJywgJydt aSBwcmFtaSBkbycnLCAiSSBsb3ZlIHlvdSIsICcnbWkga28gcHJhbWknJyBhbmQgJydkbyBtaSBw cmFtaScnKHdoZW4gc3Bva2VuIGJ5IHRoZSBwZXJzb24sIHdoaWNoICcnZG8nJyBpbiB0aGUgZmly c3Qgc2VudGVuY2UgcmVmZXJzIHRvKSBhbCBjb250YWluIHRoZSBzYW1lIGJyaWRpLiBUcnVlIGJy aWRpIGFsd2F5cyBoYXZlIHRoZWlyIGZ1bGwgcGxhY2Ugc3RydWN0dXJlIGZpbGxlZCBieSBzb21l dGhpbmcgd2l0aCBhIG5vbi16ZXJvIHZhbHVlLgoKCgpUaGUgY29uY2VwdCBvZiBhIHRleHQgaXMg Y2xvc2UgaW50ZXJ0d2luZWQgd2l0aCB0aGUgY29uY2VwdCBvZiBhIGJyaWRpLiBBbGwgYnJpZGkg YXJlIGNvbnRhaW5lZCBpbiB0ZXh0cywgdGhvdWdoIG5vdCBhbGwgdGV4dHMgY29udGFpbiBicmlk aS4gSW5kZWVkLCBvbmUgbWlnaHQgZGVmaW5lIHRleHRzIGFzIHNvbWV0aGluZyB0aGF0IGNhbiBj b250YWluIGEgYnJpZGksIGJ1dCB0aGlzIGNhbiBlYXNpbHkgbGVhZCB0byBjaXJjdWxhciBkZWZp bml0aW9ucyB3aGVuIGF0dGVtcGluZyB0byBkZWZpbmUgd2hhdCBicmlkaSBhcmUuIFRoZSBjdXJy ZW50IHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB0aGluZ3Mgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB0 ZXh0IGlzIHZhZ3VlIGF0IGJlc3QuIExpa2UgYnJpZGksIHRleHRzIGFyZSBzb21ldGhpbmcgZXRo ZXJhbCwgc29tZXRoaW5nIHdlIGNhbiBpbWFnaW5lIGV4aXN0IGluIGEgcmVhbG0gb3V0c2lkZSB0 aGUgcGh5c2ljYWwgd29ybGQuIFdoaWxlIHRoZXNlIGxlc3NvbnMgY2VydGFpbmx5IGFyZSBhIHRl eHQsIHRoZSB0ZXh0IGlzIG5vdCBtYWRlIG9mIHRoZSBwYXBlciB0aGVzZSBsZXNzb25zIGFyZSBw cmludGVkIG9uLCBvciB0aGUgbWFnbmV0aWMgZmllbGRzIHdoaWNoIGNvbnN0aXR1dGVzIHRoZSBi eXRlcyBpdCdzIHN0b3JlZCBvbi4gVGhvc2UgcGh5c2ljYWwgbWVkaWEgb25seSByZXByZXNlbnQg dGhlIHRleHQuIEJ1dCB3aGF0IGV4YWN0bHkgY2FuIHJlcHJlc2VudCBhIHRleHQ/IFdvcmRzLCBj ZXJ0YWlubHkuIEJ1dCB3aGF0IGFib3V0IGJvZHkgbGFuZ3VhZ2U/IEFuZCBkbyBhY3Rpb25zIHJl YWxseSBzcGVhayBfX3RleHRzX18gbG91ZGVyIHRoYW4gd29yZHM/IFRoaXMgaXMgbm90IGFuIGlz c3VlIEknbGwgYXR0ZW1wdCB0byBhbnN3ZXIgb3IgZXZlbiBnaXZlIGEgc2hvdCBpbiB0aGVzZSBs ZXNzb25zLgoKCgpTZXRzIGFyZSBtdWNoIGVhc2llciB0byBkZWFsIHdpdGguIFRoZXkncmUgYSBr aW5kIG9mIG1ldGEtdHlwZTogQSBpbWFnaW5hcnkgYm94LCBpbiB3aGljaCBhIGdyb3VwIG9mIHN1 bXRpIGlzIHBhY2tlZCBpbnRvLiBUaGlzIGJveCBoYXMgdmVyeSBsaXR0bGUgdG8gZG8gd2l0aCB3 aGF0J3MgaW5zaWRlIGl0LiBBIGJpZyBzZXQgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSB0aGluZ3Mg aW4gdGhlIHNldCBpcyBiaWcsIGJ1dCB0aGF0IHRoZXJlIGFyZSBtYW55IHRoaW5ncyBpbiB0aGUg c2V0LiBTZXRzIGhhdmUgdmVyeSBmZXcgcHJvcGVydGllcywgdGhlcmVmb3JlIHNldHMgYXJlIG9u bHkgdXNlZCB3aGVuIHNwZWFraW5nIGFib3V0IHRoZSBudW1iZXIgb2YgdGhpbmdzIGluIGEgZ2l2 ZW4gY2F0ZWdvcnksIHRoZSBudW1iZXIgb2YgdGhpbmdzIHNoYXJlZCBiZXR3ZWVuIHNldmVyYWwg Y2F0ZWdvcmllcywgdGhlIGNyaXRlcmlhIGZvciBpbmNsdWRpbmcgdGhpbmdzIGluIHRoZSBjYXRl Z29yeSBldGMuCgoKClRoZSBsYXN0IHVzZWQgdHlwZSBpcyB0aGUgdHJ1dGggdmFsdWUuIEkndmUg b25seSBzZWVuIGl0IGluIHVzZSBhIGhhbmRmdWwgb2YgdGltZXMsIGFuZCBvbmx5IGluY2x1ZGUg aXQgaGVyZSBiZWNhdXNlIGl0J2xsIGJlIHJlbGV2YW50IHdoZW4gZGlzY3Vzc2luZyBhIGNlcnRh aW4gYWJzdHJhY3Rpb24gaW4gdGhlIG5leHQgbGVzc29uLiBBIHRydXRoIHZhbHVlIGlzIHNvbWUg dmVyZGljdCB0aGF0IGEgYnJpZGkgaXMgdHJ1ZSwgZmFsc2UsIG9yIGFueXdoZXJlIGluIGJldHdl ZW4uIFRoZSBuYXR1cmUgb2YgYSB0cnV0aCB2YWx1ZSBpcyBhIHZlcmRpY3QsICJUcnVlIiwgIkZh bHNlIiwgIk1vc3RseSB0cnVlIiBvciB0aGUgbGlrZS4gSXQncyBvZnRlbiByZXByZXNlbnRlZCBi eSBhIG51bWJlciwgc3VjaCBhcyAwIChmYWxzZSksIDEgKHRydWUpIG9yIDAuNSAoaGFsZndheSB0 cnVlKSwgYnV0IHRoaXMgYSBzaW1wbHkgYSByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHJ1dGggdmFs dWUsIGFuZCBub3QgdGhlIHZhbHVlIGl0c2VsZi4gT25lIG1pZ2h0IGFzIHdlbGwgcmVwcmVzZW50 IGl0IGJ5IGEgY29sb3IsIHJhbmdpbmcgZnJvbSByZWQgdG8gYmx1ZS4KCgoKISFMb2piYW4gTGVz c29ucyAtIExlc3NvbiB0d2VudHktbmluZSAoc2VtYW50aWNzIG9mIHNpbXBsZSBhYnN0cmFjdGlv bnMpCgpIYXZpbmcgYXF1aXJlZCBhIHRlcm1pbm9sb2d5IHN1aXRhYmxlIGZvciB0aGUgZGlzY3Vz c2lvbiBvZiB0eXBlcywgd2UgY2FuIG5vdyBlYXNpZXIgdGFrZSBvbiB0aGUgc2VtYW50aWNzIG9m IGFic3RyYWN0aW9ucy4gTW9zdCBvZnRlbiwgYW4gYWJzdHJhY3Rpb24gaXMgbWVyZWx5IGEgYnJp ZGkgY29uc2lkZXJlZCBhcyBhIGNlcnRhaW4gdHlwZS4gV2UgYmVnaW4gd2l0aCB3aGF0IEkgY29u c2lkZXIgdGhlIHNpbXBsZXN0IG9mIGFic3RyYWN0aW9uczoKCicnX19udV9fJyc6IHgxIGlzIGFu IGV2ZW50IG9mIEJSSURJIGhhcHBlbmluZwoKWW91J3JlIGFscmVhZHkgZmFtaWxpYXIgd2l0aCB0 aGlzIHdvcmQgYW5kIGhvdyBpdCdzIHVzZWQuIEEgJydudScnLWFic3RyYWN0aW9uIGlzIGFsd2F5 cyBhbiBldmVudCwgYW5kIGFzIHN1Y2gsIGl0J3Mgc2l0dWF0ZWQgaW4gb25lIHBhcnRpY3VsYXIg dGltZSBhbmQgc3BhY2UuIFRodXM6CgonJ21pIGNhdGx1IGxvIG51IGxvIHByZW51IGN1IGRhcnhp IGxvIGdlcmt1JycgLSAiSSB3YXRjaCBhIHBlcnNvbiBoaXR0aW5nIGEgZG9nIiBpcyBhIHByb3Bl ciBldmVudCwgd2hlcmVhcwoKJydtaSBrYWtuZSBsbyBudSBiYWpyYSBmaSBsbyBtaSBiaXJrYScn IC0gIkkgY2FuIHJ1bm5pbmcgb24gbXkgYXJtcyIgaXMgd3JvbmcsIGJlY2F1c2Ugbm8gcGFydGlj dWxhciBldmVudCBvZiBydW5uaW5nIGlzIGltcGxpZWQ6IFRoZSBydW5uaW5nIHlvdSdyZSBhYmxl IHRvIGRvIGlzIGEgc2VsYnJpIC0gYSBnZW5lcmFsaXplZCBldmVudCwgYW5kIHRoZSBMb2piYW4g c2VudGVuY2UgYWJvdmUgc2hvdWxkIHNvdW5kIGFzIGJhZGx5IHdvcmRlZCBhcyBpdHMgRW5nbGlz aCB0cmFuc2xhdGlvbi4KCgoKVGhlcmUgYXJlIG1hbnkgd2F5cyB0byB2aWV3IGFuIGV2ZW50LCBh bmQgc28gdGhlcmUgYXJlIGZvdXIgb3RoZXIgYWJzdHJhY3RvcnMsIHdoaWNoIGFsbCBhbHNvIGNy ZWF0ZSBldmVudHMuIFRoZSBtZWFuaW5nIG9mIHRoZXNlIGFic3RyYWN0aW9ucyBhcmUgYWxsIGNv dmVyZWQgYnkgJydudScnLCBidXQgbW9yZSBzcGVjaWZpYy4gSSdsbCBnbyB0aHJvdWdoIHRoZW0g YWxsIGhlcmU6CgonJ19fbXXigJllX18nJzogeDEgaXMgYSBwb2ludC1saWtlIGV2ZW50IG9mIEJS SURJIGhhcHBlbmluZwoKJydfX3ph4oCZaV9fJycgeDEgaXMgYSBzdGF0ZSBvZiBCUklESSBiZWlu ZyB0cnVlCgonJ19fcHXigJl1X18nJyB4MSBpcyBhIHByb2Nlc3Mgb2YgQlJJREkgdW5mb2xkaW5n IHRocm91Z2ggc3RhZ2VzIHgyCgonJ19fenXigJlvX18nJyB4MSBpcyBhbiBhY3Rpdml0eSBvZiBC UklESSBjb25zaXN0aW5nIG9mIHRoZSByZXBlYXRlZCBldmVudCBvZiB4MgoKVGhlIHVuZGVyc3Rh bmRpbmcgb2YgdGhlc2UgYWJzdHJhY3RvcnMgaXMgdGllZCB0byB0aGUgdW5kZXJzdGFuZGluZyBv ZiBldmVudCBjb250b3Vycy4gJydtdeKAmWUnJyBpcyBha2luIHRvIHRoZSBldmVudCBjb250b3Vy ICcnY2/igJlpJycgaW4gdGhlIHNlbnNlIHRoYXQgYm90aCB0cmVhdCB0aGUgYnJpZGkgYXMgcG9p bnQtbGlrZSBpbiB0aW1lIGFuZCBzcGFjZToKCicnbGUgbXXigJllIG1pIGthbnJvIGJpbnhvIGN1 IHNlIGRqaWNhIG1pJycg4oCTIOKAnU1lIGJlY29taW5nIGhlYWx0aHkgaXMgZGVzaXJlZCBieSBt ZeKAnSBoYXMgdGhlIHNlbWFudGljIG1lYW5pbmcgdGhhdCB0aGUgcHJvY2VzcyBvZiBiZWNvbWlu ZyBoZWFsdGh5IGlzIG5vdCBiZWluZyBjb25zaWRlcmVkLiBJZiBpdCBjb25zaXN0cyBvZiBwYWlu ZnVsIGNoZW1vdGhlcmFweSwgaXQgaXMgcGxhdXNpYmxlIHRoYXQgdGhpcyBwcm9jZXNzIGlzIG5v dCBkZXNpcmVkIGF0IGFsbC4g4oCcQmVjb21pbmcgaGVhbHRoeeKAnSwgaW4gYSBwb2ludC1saWtl IHNlbnNlIGlzIGRlc2lyZWQsIGhvd2V2ZXIuCgonJ3ph4oCZaScnIGlzIGxpa2UgdGhlIGV2ZW50 IGNvbnRvdXIgJydjYeKAmW8nJyBpbiB0aGUgc2Vuc2UgdGhhdCAnJ2xlIHph4oCZaSBCUklESScn IGJlZ2lucyB0byBhcHBseSB3aGVuIHRoZSBicmlkaSBiZWdpbnMgYW5kIHNoYXJwbHkgZW5kcyB3 aGVuIHRoZSBicmlkaSBjZWFzZXMgdG8gYmUgdHJ1ZSwgbXVjaCBsaWtlICcnY2HigJlvJycuCgon J3ph4oCZbyB6YeKAmWkgbWkga2Fucm8gYmlueG8nJyBtZWFucyB0aGF0IHRoZSBzdGF0ZSBvZiBt ZSBiZWNvbWluZyBoZWFsdGh5IHRvb2sgdG9vIGxvbmcgdGltZTsgdGhhdCB0aGUgdGltZSBiZXR3 ZWVuIG15IGhlYWx0aCBiZWdpbm5pbmcgdG8gaW1wcm92ZSBhbmQgYmUgYWN0dWFsbHkgYmVpbmcg aGVhbHRoeSB3YXMgbG9uZy13aW5kZWQuCgpUaGUgYWN0dWFsIHRyZWF0bWVudCBpcyBwZXJoYXBz IGJldHRlciBjYXVnaHQgYnkgJydwdeKAmXUnJywgd2hpY2gsIGxpa2UgZXZlbnQgY29udG91cnMg aW4gZ2VuZXJhbCwgcHV0cyBlbXBoYXNpcyBvbiB0aGUgZW50aXJlIGV2ZW50IGFzIHVuZm9sZGlu ZyB0aHJvdWdoIHRpbWUuICcnLmlpIGJhIHppIGNv4oCZYSBwdeKAmXUgbWkga2Fucm8gYmlueG8g Lm9pJycgZXhwcmVzc2VzIGZlYXIgdGhhdCB0aGUgcGFpbmZ1bCBwcm9jZXNzIG9mIGJlY29taW5n IGhlYWx0aHkgaXMgYWJvdXQgdG8gYmVnaW4uIFRoZSB4MiBpcyBmaWxsZWQgYnkgYSBzZXF1ZW5j ZSBvZiBzdGFnZXMsIHdoaWNoIGNhbiBiZSBtYWRlIGJ5IGludGVyc3BhY2luZyB0aGUgc3RhZ2Vz IHdpdGggdGhlIG5vbi1sb2dpY2FsIGNvbm5lY3RpdmUgJydjZeKAmW8nJzogJyd6ZeKAmXUgcHXi gJl1IG1pIGthbnJvIGJpbnhvIGtlaSBsbyBudSBtaSBmYWNraSBjZeKAmW8gbG8gbnUgbWkgamFp IHRvbHN0aSBjZeKAmW8gbG8gbnUgbWkgcmVudmknJyBtZWFucyDigJxzb21ldGhpbmcgaXMgYSBs b25nIHByb2Nlc3Mgb2YgbWUgYmVjb21pbmcgaGVhbHRoeSBjb25zaXN0aW5nIG9mIHRoZSBzdGFn ZXMgQSApIEkgZmluZCBvdXQgQiApIHNvbWV0aGluZyBhYm91dCBtZSBiZWdpbnMgQyApIEkgZW5k dXJlLuKAnQoKRmluYWxseSwgdGhlIHNlbWFudGljcyBvZiAnJ3p14oCZbycnIHRyZWF0cyB0aGUg YWJzdHJhY3Rpb24gYXMgY29uc2lzdGluZyBvZiBhIG51bWJlciBvZiByZXBlYXRlZCBhY3Rpb25z OiAnJ2xvIHphJ2Egem8ndSBkYXJ4aSBsbyB0YW54ZSBjdSByaW5rYSBsbyBjYSBtdSdlIHBvcnBp Jycg4oCTICJUaGUgb2JzZXJ2ZWQgYWN0aXZpdHkgb2YgYmVhdGluZyB0aGUgYm94IGNhdXNlZCBp dHMgY3VycmVudCBicm9rZW5uZXNzIiBpcyBtb3JlIGFjY3VyYXRlIHRoYW4gdGhlIHNpbWlsaWFy IHNlbnRlbmNlIHVzaW5nICcnbnUnJywgYmVjYXVzZSAnJ3p1J28nJyBtYWtlcyBpdCBleHBsaWNp dCB0aGF0IGl0IHdhcyB0aGUgcmVwZWF0aW5nIG9mIHRoZSBhY3Rpb24gb2YgYmVhdGluZywgbm90 IGEgcGFydGljdWxhciBpbnN0YW5jZSBvZiBiZWF0aW5nIHdoaWNoIGJyb2tlIHRoZSBib3guCgoK ClRoZSB4MiBvZiAnJ3p1J28nJyBpcyBlaXRoZXIgb25lIGV2ZW50IG9yIGEgc2VxdWVuY2Ugd2hp Y2ggaXMgcmVwZWF0ZWQuIFRvIGJlIHVubmVjZXNzYXJpbHkgZXhwbGljaXQsIHdlIGNvdWxkIGhh dmUgc3RhdGVkIHRoYXQgdGhlIGNhdXNlIG9mIHRoZSBjdXJyZW50IGJyb2tlbm5lc3Mgd2FzICcn bG8gem8ndSBkYXJ4aSBsbyB0YW54ZSBrZWkgbG9udSBsYWZ0aSBsbyBncmFuYSBrZWkga3UgY2Un byBsb251IG11dmdhdSBsbyBncmFuYSBsbyB0YW54ZSBrZWkga3UgY2UnbycnIC4uLiBhbmQgc28g b24uCgpOb3RlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gJydtdeKAmWUgYmFqcmEnJywgJyd6YeKA mWkgYmFqcmEnJywgJydwdeKAmXUgYmFqcmEnJywgJyd6deKAmW8gYmFqcmEnJyBhbmQgJydudSBi YWpyYScnOiBUaGUgcG9pbnQtbGlrZSBldmVudCBvZiBydW5uaW5nIHB1dHMgZW1waGFzaXMgb24g dGhlIGV2ZW50IGhhcHBlbmluZywgYnV0IG5vdGhpbmcgZWxzZS4gVGhlIHN0YXRlIG9mIHJ1bm5p bmcgYmVnaW5zIHdoZW4gdGhlIHJ1bm5lciBiZWdpbnMgYW5kIHN0b3BzIHdoZW4gdGhlIHJ1bm5l ciBzdG9wcy4gVGhlIHByb2Nlc3Mgb2YgcnVubmluZyBjb25zaXN0cyBvZiBhIHdhcm0tdXAsIGtl ZXBpbmcgYSBzdGVhZHkgc3BlZWQsIGFuZCB0aGUgZmluYWwgc3ByaW50LiBUaGUgYWN0aXZpdHkg b2YgcnVubmluZyBjb25zaXN0cyB0aGUgY3ljbGVzIG9mIGxpZnRpbmcgb25lIGZvb3QsIG1vdmlu ZyBpdCBmb3J3YXJkLCBkcm9wcGluZyBpdCBkb3duLCByZXBlYXQgd2l0aCB0aGUgb3RoZXIgZm9v dC4gQWxsIG9mIHRoZXNlIGFzcGVjdHMgYXJlIHNpbXVsdGFuZW91c2x5IGNvdmVyZWQgYnkgdGhl IGV2ZW50IG9mIHJ1bm5pbmcsICcnbnUgYmFqcmEnJy4KCgoKQW5vdGhlciB0eXBlIG9mIGFic3Ry YWN0b3IgaXMgdGhlIGV4cGVyaWVuY2UgYWJzdHJhY3RvciwgJydsaSdpJyc6CgonJ19fbGknaV9f Jyc6IEV4cGVyaWVuY2UgYWJzdHJhY3RvcjogeDEgaXMgeDIncyBpbnRlcm5hbCBleHBlcmllbmNl IG9mIEJSSURJCgpBbiBleHBlcmllbmNlIGNhbiBiZSBjb25zaWRlcmVkIGFuIGV2ZW50IHR5cGUu IEl0IGhhcyBhbG1vc3QgdGhlIHNhbWUgYXR0cmlidXRlczogSXQncyBwbGFjZWQgaW4gc3BhY2Us IHRoZXJlJ3MgZm9jdXMgb24gdGhlIHRpbWUgb3ZlciB3aGljaCBpdCB1bmZvbGRzLCBhbmQgaXQn cyBub3QgYSBmdW5jdGlvbi4KClVubGlrZSBldmVudCBhYnN0cmFjdGlvbnMsIGhvd2V2ZXIsIGFu IGV4cGVyaWVuY2UgaXMgZXhwbGljaXRseSBtZW50YWwgLSBhICcnbGknaScnLWFic3RyYWN0aW9u IGNhbm5vdCBiZSBzYWlkIHRvIGV4aXN0IG91dHNpZGUgdGhlIG1pbmQgb2YgYSBwZXJzb24uIFRo aXMgZGlmZmVyZWNlIGlzIHB1cmVseSBzZW1hbnRpYywgYW5kIGV4Y2hhbmdpbmcgZXZlbnQgYW5k IGV4cGVyaWVuY2UgYWJzdHJhY3RvcnMgd291bGQgbm90IGJlIGNvbnNpZGVyZWQgYSB0eXBlIGZh aWx1cmUgaW4gdGhlIHNhbWUgc2Vuc2UgYXMgJydtaSBrYWtuZSBsbyBudS4uLicnLiBJdCBtaWdo dCBub3QgbWFrZSBzZW5zZSwgYXMgaW4gJydsbyBrYWNtYSBjdSB2cmVqaSBsbyBsaSdpIGxvIG1p IHBlbmRvIGN1IGNsaXZhIGtlaSBtaScnIC0gIkEgY2FtZXJhIHJlY29yZGVkIG15IGV4cGVyaWVu Y2Ugb2YgbXkgZnJpZW5kIGxlYXZpbmciLiBCdXQgdGhlbiBhZ2FpbiwgY2luZW1hIGlzIGRlcGVu ZGVudCBvbiBjYW1lcmFzIGJlaW5nIGFibGUgdG8gcmVjb3JkIHRoZSBhY3RvcnMgZW1vdGlvbnMu CgpJdCBkb2VzLCBJIHRoaW5rLCBtYWtlIGNvbXBsZXRlIHNlbnNlIHRvIHdyaXRlICcnbWkgY2lr c2kgbG8gbGknaSBsbyBtaSBwZW5kbyBjdSBjbGl2YSBrZWkgbWknJywgJydsbyBsaSdpIGxvIG1p IHR1bmJhIGN1IG1vcnNpIGN1IG11a3RpIGxvIG51IG1pIGNhdHJhJycsICBhbmQgdGhlIGxpa2Uu CgonJ2xpJ2knJyBpcyBkZXJpdmVkIGZyb20gJydsaWZyaScnLCBhbmQgaXMgaW5kZWVkIGEgJydz ZSBsaWZyaScnIC0gYW4gZXhwZXJpZW5jZS4KCgoKQSAnJ2R1J3UnJy1hYnN0cmFjdGlvbiBpcyBw cm9iYWJseSB0aGUgb3RoZXIga2luZCBvZiBhYnN0cmFjdGlvbiB5b3UncmUgdXNlZCB0byBzZWVp bmcsIGJlc2lkZSAnJ251JycuCgonJ19fZHUndV9fJyc6IEJyaWRpIGFic3RyYWN0aW9uOiB4MSBp cyB0aGUgYnJpZGkgb2YgQlJJREksIGFzIHJlcHJlc2VudGVkIGJ5IHRleHQgeDIKCkFjY29yZGlu ZyB0byB0aGUgc3RhbmRhcmQsIGFic3RyYWN0aW9ucyBsaWtlIHRydXRocywgbGllcywgdGhpbmdz IGJlaW5nIGRpc2NvdmVyZWQgb3IgdGhpbmdzIGJlaW5nIGJlbGlldmVkIGFyZSBhbGwgcHVyZSBi cmlkaToKCicnLnVpIHNhaSBwdSB6aSBmYWNraSBsbyBkdeKAmXUgemkgY2l0a2EgbG8gY2lkanJw aXRzYScnIOKAkyDigJxZZXMhIEkganVzdCBmb3VuZCBvdXQgdGhhdCBwaXp6YSB3aWxsIGJlIGVh dGVuIHNvb24h4oCdLgoKJydtaSBrcmljaSBsbyBkdSd1IGxhIHR1cm5pIGN1IHpiYXN1IHBpIHJv IGxvIG11bmplIHppJ28nJyAtICJJIGJlbGlldmUgVGhlIExvcmQgY3JlYXRlZCBhbGwgb2YgdGhl IHVuaXZlcnNlIgoKV2hhdCBpcyBiZWluZyBkaXNjb3ZlcmVkIG9yIGJlbGlldmVkIGlzIHRoZSB0 cnV0aCBvZiBhbiBhYnN0cmFjdCBicmlkaSwgc28gJydkdSd1JycgaXMgYXBwcm9wcmlhdGUuCgpB cyB5b3UgY2FuIHNlZSwgdGhlIHgyIG9mICcnZHUndScnIGlzIHVzZWQgZm9yIHRoZSB0ZXh0IGlu IHdoaWNoIHRoZSBicmlkaSBpcyBjb250YWluZWQuIEFzIHN0YXRlZCBiZWZvcmUsIHRoZSBuYXR1 cmUgb2YgdGV4dHMgYXJlIGhhcmQgdG8gbmFpbCBkb3duLCBidXQgaW4gcHJhY3RpY2UsICcnZHUn dScnJ3MgeDIgY2FuIGJlIHVzZWQgdG8gZXhwcmVzcyBpbmRpcmVjdCBxdW90YXRpb246CgonJy51 ZSBkbyBwdSBjdXNrdSBrdSdpIGxvIHNlIGR1J3UgZG8gbmVsY2kgbG8gY2thZmknJyAtICJPaCEg QnV0IHlvdSBzYWlkIHRoYXQgeW91IGxpa2VkIGNvZmZlZSEiLiAKCgoKT3V0IG9mIG9ibGlnYXRp b24sIHRoaXMgbGVzc29uIHdpbGwgaW5jbHVkZSB0aGUgdHJ1dGggdmFsdWUgYWJzdHJhY3Rvciwg JydqZWknJy4gTGV0J3Mgc2VlIHRoZSBkZWZpbml0aW9uOgoKJydfX2plaV9fJyc6IFRydXRoIGFi c3RyYWN0aW9uOiB4MSBpcyB0aGUgdHJ1dGggdmFsdWUgb2YgQlJJREkgdW5kZXIgZXBpc3RlbW9s b2d5IHgyCgonJ2plaScnIGlzIHJhcmVseSB1c2VkLCBub3QgYmVjYXVzZSB0cnV0aCBhYnN0cmFj dGlvbnMgYXJlIGluZnJlcXVlbnRseSBuZWVkZWQsIGJ1dCBiZWNhdXNlIG1vc3QgbG9qYmFuaXN0 cyB1c2Ugb3RoZXIgbWVjaGFuaXNtcyB0byBvYnRhaW4gdGhlbS4gVGhlIHJlYWwgdXNlIG9mICcn amVpJycgaXMgd2hlbmV2ZXIgYSB0cnV0aCB2YWx1ZSB3aGljaCBpcyBub3QgInRydWUiIG9yICJm YWxzZSIgaXMgbmVlZGVkLCBpLmUuIHByYWN0aWNhbGx5IG5ldmVyLiBJJ2xsIGdpdmUgYSBjb3Vw bGUgb2YgZXhhbXBsZXM6CgonJ21pIGRpJ2kgcGVuc2kgbG8gamVpIG1pIG1lcmtvJycgLSAiSSBv ZnRlbiB0aGluayBhYm91dCB3aGV0aGVyIEkgYW0gQW1lcmljYW4gb3Igbm90IiAoY29udHJhc3Qg d2l0aCAiSSBvZnRlbiB0aGluayBhYm91dCBob3cgQW1lcmljYW4gSSBhbSIsIHdoaWNoIHVzZWQg YW4gYW1vdW50IGFic3RyYWN0aW9uLCBub3QgYSB0cnV0aCB2YWx1ZSkuCgonJ2xpIHBpIGJpIGpl aSBsYSB0aW5qaW4gY3UgbWlrY2UnJyAtICJJdCdzIDgwJSB0cnVlIHRoYXQgVGluZGppbiBpcyBh IGRvY3RvciIgKHdoYXRldmVyIHRoYXQgbWlnaHQgbWVhbikKCgoKVG8gY29uY2x1ZGUgdGhpcyBs ZXNzb24sIHRoZSBhYnN0cmFjdG9yICcnc3UndScnIGlzIGEgdW5pdmVyc2FsIGFic3RyYWN0b3Is IHdob3NlIHgyIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgaG93IHRoZSBhYnN0cmFjdGlvbiBzaG91 bGQgYmUgY29uc2lkZXJlZCAtIGZvciBleGFtcGxlLCB3aGljaCB0eXBlIHRoZSBhYnN0cmFjdGlv biBpcy4gSXQgaGFzIGFscmVhZHkgYmVlbiBkZWZpbmVkLCBidXQgd2UgbWlnaHQgYXMgd2VsbCBk byBpdCBhZ2FpbjoKCicnX19zdSd1X18nJzogVW5pdmVyc2FsIGFic3RyYWN0b3IgeDEgaXMgdGhl IGFic3RyYWN0aW9uIG9uIEJSSURJIGNvbnNpZGVyZWQgYXMgeDIgLyB4MSBpcyB0aGUgYWJzdHJh Y3Rpb24gb2YgQlJJREkgb2YgdHlwZSB4Mi4KClRoZSBpZGVhIG9mIHRoaXMgYWJzdHJhY3Rpb24g aXMgZWFzeSwgc28gSSdsbCBqdXN0IGdpdmUgYSBmZXcgZXhhbXBsZXMgb2YgaXQgaW4gdXNlIGFu ZCBsZWF2ZSBpdCBhdCB0aGF0OgoKVGhlIEVuZ2xpc2ggcGhyYXNlIOKAnHRoYXQgSSBsb3ZlIHlv deKAnSBpcyBkZWZpbml0ZWx5IGEgc3VtdGksIHNpbmNlIGl04oCZcyBtZWFudCB0byBmdW5jdGlv biBhcyBhIHN1YmplY3Qgb3Igb2JqZWN0IGluIGEgc2VudGVuY2UuIEl04oCZcyBhbHNvIGNsZWFy bHkgbWFkZSBmcm9tIGFuIGFic3RyYWN0aW9uLiBJdCBjYW4gdGhlcmVmb3JlIGJlIHRyYW5zbGF0 ZWQgJydsbyBzdeKAmXUgbWkgZG8gcHJhbWknJy4gV2l0aG91dCB0aGUgY29udGV4dCBvZiB0aGUg RW5nbGlzaCBzZW50ZW5jZSwgdGhvdWdoLCBpdOKAmXMgaGFyZCB0byBndWVzcyB3aGF0IGtpbmQg b2YgYWJzdHJhY3Rpb24gd2FzIG1lYW50LiDigJxJIHdpbGwgZGllIGhhcHB5IGJ5IHRoZSB0aW1l IHRoYXQgSSBsb3ZlIHlvdS7igJ0gdHJlYXRzIHRoZSBhYnN0cmFjdGlvbiBhcyBhbiBldmVudCBo YXBwZW5pbmcgaW4gdGltZS4g4oCcVGhlIHRydXRoIGlzIHRoYXQgSSBsb3ZlIHlvdS7igJ0gdHJl YXRzIHRoZSBhYnN0cmFjdGlvbiBsaWtlIGEgYnJpZGksIHdoaWNoIGNhbiBiZSBjb25zaWRlcmVk IHRydWUgb3IgZmFsc2UuICJZb3UgZG9uJ3Qga25vdyBob3cgbXVjaCBJIGxvdmUgeW91IiB0cmVh dHMgdGhlIChhbG1vc3Qgc2FtZSkgYWJzdHJhY3Rpb24gYXMgYW4gYW1vdW50LiBVc2luZyB0aGUg c2Vjb25kIHN1bXRpIHBsYWNlIG9mIHN14oCZdSwgdGhlc2UgY2FuIGJlIGV4cGxpY2l0bHkgZGlz dGluZ3Vpc2hlZCBiZXR3ZWVuOgoKJydsbyBzdeKAmXUgbWkgZG8gcHJhbWkga2VpIGJlIGxvIGZh c251JycgaXMgYW4gZXZlbnQuCgonJ2xvIHN14oCZdSBtaSBkbyBwcmFtaSBrZWkgYmUgbG8gYnJp ZGknJyBpcyBhIGJyaWRpLgoKJydsbyBzdeKAmXUgbWkgZG8gcHJhbWkga2VpIGJlIGxvIGtsYW5p JycgaXMgYW4gYW1vdW50LgoKVXNpbmcgJydzdeKAmXUnJyB0aGlzIHdheSwgdGhlIHNlbWFudGlj LCB0aG91Z2ggbm90IGdyYW1tYXRpY2FsLCByYW5nZSBvZiBhbGwgYWJzdHJhY3RvcnMgY2FuIGJl IGNvdmVyZWQuIE1vcmUgdXN1YWxseSwgdGhvdWdoLCBvdGhlciBhYnN0cmFjdG9ycyBhcmUgdXNl ZC4KCkZpbmFsbHksIGxvamJhbmlzdHMgSm9obiBDb3dhbiB0cmFuc2xhdGVkIHRoZSB0aXRsZSBv ZiB0aGUgYm9vayBUaGUgQ3J1Y2lmaXhpb24gb2YgSmVzdXMgQ29uc2lkZXJlZCBBcyBBIERvd25o aWxsIEJpY3ljbGUgUmFjZSBhcyAnJ2xvIHN1J3UgbGEgLmllY3Vhcy4ga3VjdGFpIHNlbGNhdHJh IGtlaSBiZSBsbyBzYeKAmW9yZHppZmEnYSBrZSBuYWxtYXRtYSdlIHN1dHl0ZXJqdmknJwoKCgoK CiEhTG9qYmFuIExlc3NvbnMgLSBMZXNzb24gdGhpcnR5IChzZW1hbnRpY3Mgb2YgZnVuY3Rpb25z KQoKRnVuY3Rpb25zIGFyZSBhIGdyb3VwIG9mIHR3by10aHJlZSB0eXBlcyBvZiBhYnN0cmFjdGlv bnMuIFRoZSB0ZXJtJ3Mgbm90IG9mZmljaWFsLCBidXQgSSdsbCB1c2UgaXQgaGVyZSBhbnl3YXku CgpUaGUgZGVmaW5pdGlvbiBvZiBmdW5jdGlvbnMgaXMgY2xvc2VseSByZWxhdGVkIHRvIHRoZSBs aXR0bGUgbmVhdCB3b3JkICcnY2UndScnLiAnJ2NlJ3UnJyBpcyBhIHN1bWthJ2kgd2hpY2ggZmls bHMgb25lIHN1bXRpIHBsYWNlLiBJdCdzIG9ubHkgZm91bmQgdXNhZ2UgaW5zaWRlIGFic3RyYWN0 aW9ucyB3aGljaCBhcmUgYWxzbyBmdW5jdGlvbnMuIEFsbCBmdW5jdGlvbnMgbXVzdCBoYXZlIGF0 IGxlYXN0IG9uZSAnJ2NlJ3UnJyBzb21ld2hlcmUgaW4gdGhlIGFic3RyYWN0aW9uIC0gdGhhdCdz IHdoYXQgbWFrZXMgdGhlbSBmdW5jdGlvbnMuIFRoZSAnJ2NlJ3UnJyBjYW4gYmUgZWxpZGVkLCBp biB3aGljaCBjYXNlIGl0J3MgbW9zdCBvZnRlbiBhc3N1bWVkIHRvIGZpbGwgdGhlIGZpcnN0IGVs aWRlZCBzdW10aSBwbGFjZSBvZiB0aGUgZnVuY3Rpb24sIHVubGVzcyBjb250ZXh0IHByb3ZpZGVz IGEgbW9yZSByZWFzb25hYmxlIGFsdGVybmF0aXZlLgoKV2hhdCBkb2VzIGl0IGFjdHVhbGx5IGRv PyBMZXQncyBoYXZlIGEgbG9vayBhdCBpdHMgZGVmaW5pdGlvbjoKCicnX19jZSd1JydfXzogUHNl dWRvLXF1YW50aWZpZXIgYmluZGluZyBhIHZhcmlhYmxlIHdpdGhpbiBhbiBhYnN0cmFjdGlvbiB0 aGF0IHJlcHJlc2VudHMgYW4gb3BlbiBwbGFjZS4KCldlbGwsIHRoYXQgd2Fzbid0IHZlcnkgaGVs cGZ1bCwgc28gbGV0IG1lIHRyeSBleHBsYWluaW5nIGl0IHdpdGggYW5vdGhlciBhcHByb2FjaDoK ClB1dHRpbmcgJydjZSd1JycgaW4gYSBzdW10aSBwbGFjZSBsZWF2ZXMgdGhlIHN1bXRpIHBsYWNl IGVtcHR5LiBUaGUgcGxhY2UgaXMgbm90IGVyYXNlZCwgbGlrZSBpZiB5b3UgZmlsbCBpdCB3aXRo ICcnemknbycnLCBidXQgdGhlIHBsYWNlIGlzIG5vdCBmaWxsZWQgd2l0aCBhbnl0aGluZyAtIG5v dCBhIHNwZWNpZmljIHRoaW5nLCBub3QgYSAnJ3p1J2knJywgbm90IGEgICcnem8nZScnLCBub3Ro aW5nLiBJbiB0aGF0IG1hbm5lciwgdGhlIGVtcHR5IHN1bXRpIHBsYWNlcyBhcmUgcmVtbmlzY2ll bnQgb2YgdGhlIHgxLCB4MiwgYW5kIHgzJ3Mgd2UgcHV0IGluIHRoZSBzdW10aSBwbGFjZXMgb2Yg RW5nbGlzaCBkZWZpbml0aW9ucyBvZiBicml2bGEgLSBtYXJraW5nICJUaGlzIGlzIHdoZXJlIHNv bWV0aGluZyBlbHNlIGNhbiBiZSBwdXQiLgoKVGh1cyAnJ21pIGNpdGthIGxvIHRpIGJhZG5hJycg aXMgIkkgZWF0IHRoaXMgYmFuYW5hIiwgYnV0CgonJ21pIGNpdGthIGNlJ3UnJyBpcyAiSSBlYXQg WCIuCgpPZiBjb3Vyc2UsICJJIGVhdCBYIiBpcyBtZWFuaW5nbGVzcyB1bmxlc3MgdGhhdCBYIGlz IGZpbGxlZCBieSBzb21ldGhpbmcsIGFuZCBpbmRlZWQgdGhlIHNlbnRlbmNlICcnbWkgY2l0a2Eg Y2UndScnIGlzIHNlbnNlbGVzcyBpbiBMb2piYW4gYXMgd2VsbC4KCgoKSW4gb3JkZXIgdG8gcHV0 IGl0IHRvIHVzZSwgd2UgbmVlZCBhIGZ1bmN0aW9uIGFic3RyYWN0aW9uLiBXZSdsbCBiZWdpbiB3 aXRoIHRoZSBtb3N0IG9mdGVuLXVzZWQ6IFRoZSBzZWxicmkgYWJzdHJhY3Rpb24gJydrYScnLiBM ZXQncyBzZWUgaXRzIG9mZmljaWFsIGdsb3NzOgoKJydfX2thX18nJyBQcm9wZXJ0eS9xdWFsaXR5 IGFic3RyYWN0b3IgKC1uZXNzKTsgeDEgaXMgcXVhbGl0eS9wcm9wZXJ0eSBleGhpYml0ZWQgYnkg QlJJREkuCgpVbmRlciB0aGUgdW5kZXJzdGFuZGluZyB3aGljaCBJIHdpbGwgdGVhY2gsIHRoaXMg Z2xvc3MgaXMgbWlsZGx5IG1pc2xlYWRpbmcuIEluc3RlYWQsICcna2EnJyBzaG91bGQgcHJvYmFi bHkgYmUgZ2xvc3NlZCBzdWNoOgoKJydrYScnIFByZWRpY2F0ZS9zZWxicmkgYWJzdHJhY3Rvcjog eDEgaXMgdGhlIHByZWRpY2F0ZS9zZWxicmkgb2YgQlJJREkgKG5lZWRzIGF0IGxlYXN0IG9uZSBv cGVuIHZhcmlhYmxlIGkuZSBhIGNlJ3UpCgpVc2luZyBhIHNlbGJyaSBhYnN0cmF0aW9uLCAiSSBl YXQgWCIgY2FuIG1ha2Ugc2Vuc2UsIGFzIGluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZToKCicnX19j a2FqaV9fJycgeDEgaXMgY2hhcmFjdGVyaXplZCBieSBzZWxicmkgeDIKCicnbG8gdGkgYmFkbmEg Y3UgY2thamkgbG8ga2EgbWkgY2l0a2EgY2UndScnIC0gIlRoaXMgYmFuYW5hIGlzIGNoYXJhY3Rl cnRpemVkIGJ5IHRoZSBzZWxicmk6ICJJIGVhdCBYIiIsIHdoaWNoIG1heSBiZSByZXByYXNlZCBh cyAiVGhpcyBiYW5hbmEgZml0cyB0aGUgc2VsYnJpOiAiQmVpbmcgZWF0ZW4gYnkgbWUiIiwgd2hp Y2ggaXMgb2YgY291cnNlIGVxdWl2YWxlbnQgdG8gJydtaSBjaXRrYSBsbyB0aSBiYWRuYScnIC0g IkkgZWF0IHRoaXMgYmFuYW5hIi4KCkZvciB0aGUgc3RhdGVtZW50IHRvIG1ha2Ugc2Vuc2UsIHRo ZSBzdW10aSBwbGFjZSBoZWxkIG9wZW4gYnkgJydjZSd1JycgbXVzdCBiZSBmaWxsZWQgYnkgc29t ZXRoaW5nLiBUaGUgbWFpbiBzZWxicmkgb2YgdGhlIHN0YXRlbWVudCwgaW4gdGhpcyBjYXNlICcn Y2thamknJywgZ2l2ZXMgdXMgYSBjbHVlIGhvdyB0byBmaWxsIHRoZSBvcGVuIHN1bXRpIHBsYWNl LiBTdWNoIHNlbGJyaSBhbG1vc3QgYWx3YXlzIGZpbGwgaXQgd2l0aCBhIHN1bXRpIGZyb20gdGhl IG1haW4gc2VsYnJpLiBIb3cgJydjZSd1JycgaXMgZ2l2ZW4gYSBub24temVybyB2YWx1ZSBoYXMg YmVlbiBhIHN1YmplY3Qgb2YgbWlub3IgZGViYXRlIGluIExvamJhbmlzdGFuLCBidXQgdGhlIGlz c3VlIGlzIG1vcmUgb3IgbGVzcyBzZXR0bGVkOiAnJ2NlJ3UnJyBrZWVwcyBhIHN1bXRpIHBsYWNl IG9wZW4sIGFuZCB0aGUgbWFpbiBzZWxicmkgdGhlbiBmaWxscyBpdCB3aXRoIHNvbWV0aGluZy4K CgoKVGhvdWdoIGl0IG9mdGVuIGlzLCB0aGUgJydjZSd1JycgcGxhY2UgbmVlZCBub3QgYmUgZmls bGVkIGJ5IHRoZSBzZWxicmkgaW4gb3JkZXIgZm9yIHRoZSBhYnN0cmFjdGlvbiB0byBtYWtlIHNl bnNlOiBPbiBpdHMgb3duLCAnJ2xvIGthIGNlJ3UgdGUgdmVjbnUgbG8gZmlucGUnJyBtZWFuczog ImJ1eWluZyBhIGZpc2giLCBvciAidG8gYnV5IGEgZmlzaCIKCicnbG8gc2UgbGlzcmkgY3Ugc3Jh bmEgbG8ga2EgY2UndSB0ZSB2ZWNudSBsbyBmaW5wZScnIC0gIlRoZSBwbG90IGlzIGFib3V0IGJ1 eWluZyBhIGZpc2giLiBIZXJlLCAnJ3NyYW5hJycgZG9lcyBub3QgYXBwbHkgYW55dGhpbmcgdG8g dGhlICcnY2UndScnLXBsYWNlLCBhbmQgdGhlIGFic3RyYWN0aW9uIGlzIGluc3RlYWQgc2VlbiBh cyB0aGUgc2VsYnJpIG9uIGl0cyBvd24uCgoKCkFuIGFsdGVybmF0aXZlIHdheSBvZiBleHBsYWlu aW5nICcnY2UndScnIGlzIGJ5IHJlZ2FyZGluZyB0aGVtIGFzIHZhcmlhYmxlcyBpbiBhIGxhbWJk YSBmdW5jdGlvbi4gRm9yIGluc3RhbmNlLCBjb25zaWRlciB0aGUgc2VudGVuY2U6CgonJ2xhIC5h bGlzLiBjdSBkamljYSBsbyBrYSBjZSd1IHRlIHZlY251IGxvIGZpbnBlJycgLSAiQWxpY2Ugd2Fu dHMgdGhhdCBBbGljZSBidXlzIGEgZmlzaCIKCkhlcmUsIHRoZSBmaXJzdCBhcmd1bWVudCBvZiAn J2RqaWNhJycgaXMgdGhlIG9uZSB3aG8gd2FudHMgc29tZXRoaW5nLCBuYW1lbHkgQWxpY2UuIFRo ZSBzZWNvbmQgYXJndW1lbnQgaXMgdGhlIHNlbGJyaSB0aGF0IEFsaWNlIHdhbnRzIHRvIGZ1bGZp bGw6IEJ1eWluZyBhIGZpc2guCgpXZSBjYW4gdmlldyAnJ2NlJ3UnJyBhcyBhIGZyZWUgdmFyaWFi bGUsIHdoaWNoIHRoZW4gYmVjb21lcyBib3VuZCBieSBhIGxhbWJkYSBhYnN0cmFjdGlvbiwgbmFt ZWx5ICcna2EnJy4gIE5vdywgJydrYSBjZSd1IHRlcnZlJ3UgbG8gZmlucGUnJyBjYW4gYmUgc2Vl biBhcyBhIGxhbWJkYSBmdW5jdGlvbjoKCiAgICBcIHggLT4gdGUgdmVjbnUoeCxsbyBmaW5wZSx6 bydlLHpvJ2UpLAoKYW5kIGluIHRoaXMgY2FzZSAnJ2RqaWNhJycgc3VwcGxpZXMgdGhlIGxhbWJk YSBmdW5jdGlvbiB3aXRoIEFsaWNlLgoKCgpMYW1iZGFzIGNhbiBiZSBzdG9yZWQgdG8gYWxsb3dp bmcgdG8gcGFzcyB0aGVtIGFyb3VuZCBhbmQgdXNlIHRoZW0gaW4gdmFyaW91cyBzaXR1YXRpb25z OgoKJydjYSdlIHpvJ2UgZ29pIGtvJ2Ega2EgY2UndSBkYW5zdSAuaSBtaSBrbydhIGNrYWppIC5p IGRvIGtvJ2EgZGppY2EgLmkgbWEnYSBrbydhIGtha25lJycgIC0gIkkgZGVmaW5lOiBUaGF0IGtv J2EgaXMgc29tZSBwcm9wZXJ0eSB3aGljaCBtZWFucyAidG8gZGFuY2UiLiBJIGFtIGRvaW5nIGl0 LiBZb3Ugd2FudCBpdC4gRXZlcnlvbmUgY2FuIGRvIGl0IgoKCgpVc2luZyAnJ2thJycsIHdlIGNh biBjb3JyZWN0bHkgcGhyYXNlICJJIGNhbiBydW4gb24gbXkgYXJtcyIuIEhvdz8KCkFuc3dlcjog fn5ncmV5LGdyZXk6bWkga2FrbmUgbG8ga2Ege2NlJ3V9IGJhanJhIGZpIGxvIG1pIGJpcmthfn4K CgoKQSBsb3Qgb2Ygb2Z0ZW4tdXNlZCBnaXNtdSB0YWtlcyBzZWxicmkgYXMgb25lIG9mIHRoZWly IHN1bXRpLCB3aGljaCBtZWFucyAnJ2xvIGthJycgaXMgdXNlZCBxdWl0ZSBvZnRlbi4gQSBmZXcg bm90YWJsZSBleGFtcGxlcyBhcmUgJyd0cm9jaScnLCAnJ2tha25lJycsICcnZGppY2EnJywgJyd6 dWt0ZScnLCAnJ3NuYWRhJycsICcnZnJheHUnJzoKCicnbG8ga2FzbGkgbmEga2FrbmUgbG8ga2Eg c2lsY3UgbGEnZSBsYSdvaSBYLWZpbGVzJycgLSAiVGhlIGRvbmtleSBjYW5ub3Qgd2hpc3RsZSB0 aGUgWC1maWxlcyBzb25nIgoKCgonJy5lJ28ga28gbG8gamFpIHNlIHpnaWtlIGN1IGZyYXh1IGxv IGthIGRhcnhpIGxvIGRhbXJpIGNhIGxvIG51IGRvIHNpcG5hJycgLSAiUGxlYXNlIGZvcmdpdmUg dGhlIG11c2ljaWFuIGZvciBzdHJpa2luZyB0aGUgZHJ1bSB3aGVuIHlvdSB3ZXJlIHNsZWVwaW5n ISIKCgoKQXQgbGVhc3Qgb25lIHNlbGJyaSBjYW4gZmlsbCB0d28gJydjZSd1Jycgd2l0aGluIGEg a2EtYWJzdHJhY3Rpb24uIFdoYXQgZG9lcyB0aGUgZm9sbG93aW5nIGp1ZnJhIG1lYW4/CgoKCicn bWkgbG8gcGFtcGUnbyBjdSBzaW14dSBsbyBrYSB7Y2UndSBjZSd1fSBnbGV0dScnCgpBbnN3ZXI6 IH5+Z3JleSxncmV5OicnTWUgYW5kIG15IGxvdmVyIGhhdmUgc2V4IHdpdGggZWFjaCBvdGhlciBt dXR1YWxseSJ+fgoKCgpPZiBjb3Vyc2UsIHRoZSAnJ2NlJ3UnJyBuZWVkIG5vdCBiZSBwbGFjZWQg aW4gdGhlIGJlZ2lubmluZyBvZiB0aGUgJydrYScnLWFic3RyYWN0aW9uLiBPbmUgY291bGQgdmVy eSB3ZWxsIHNwZWFrIG9mCgonJ2xvIGthIGxhIC5iYWIuIG1lbGJpIGNlJ3UnJyAtICJUaGUgc2Vs YnJpIG9mOiAiQm9iIGlzIGJlYXV0aWZ1bCBhY2NvcmRpbmcgdG8gWCIiLCBvciBpbiBvdGhlciB3 b3JkczogIlRoaW5raW5nIHRoYXQgQm9iIGlzIGJlYXV0aWZ1bCIuCgpJbmRlZWQsIG1vdmluZyB0 aGUgJydjZSd1JycgYXJvdW5kIGluIGFuIGZ1bmN0aW9uIGNyZWF0ZXMgdmVyeSBkaWZmZXJlbnQg bWVhbmluZ3M6CgonJ2xvIGthIGNlJ3UgcGFuemkgbGEgLmFsaXMuJycgLSAiVGhlIHNlbGJyaTog IlggaXMgYSBjaGlsZCBvZiBBbGljZSIiID0gIkJlaW5nIEFsaWNlJ3MgY2hpbGQiLCB2ZXJzdXMK CicnbG8ga2EgbGEgLmFsaXMuIHBhbnppIGNlJ3UnJyAtICJUaGUgc2VsYnJpOiAiQWxpY2UgaXMg YSBjaGlsZCBvZiBYIiIgPSAiQmVpbmcgdGhlIHBhcmVudCBvZiBBbGljZSIuCgpPbmUgY291bGQg ZXZlbiBpbWFnaW5lIGEgc3RhdGVtZW50IGluIHdoZXJlIHRoZSAnJ2NlJ3UnJyBpcyBwbGFjZWQg aW4gYSB2ZXJ5IHVuY29udmVudGlvbmFsIHBsYWNlOgoKJydtaSAuZSBuYWkgZG8gY2thamkgbG8g a2EgbG8gYnJ1bmEgY3UgamJvY3JlJycsIHdoZXJlaW4gdGhlICcnY2UndScnIGlzIGVsaWRlZCwg YnV0IG1vc3QgcHJvYmFibHkgaGlkaW5nIGluICcnbG8gYnJ1bmEgYmUgY2UndScnLCB0aGVyZWZv cmUgbWVhbmluZyAiSSBhbmQgbm90IHlvdSBpcyBjaGFyYWN0ZXJpemVkIGJ5IHRoZSBzZWxicmk6 ICJUaGUgYnJvdGhlciBvZiBYIGlzIGdvb2QgYSBMb2piYW4iIiwgd2hpY2ggaXMgdGhlIHNhbWUg YXMgIkkgaGF2ZSBhIGJyb3RoZXIgd2hvJ3MgZ29vZCBhdCBMb2piYW4sIGJ1dCB5b3UgZG9uJ3Qi LgoKCgpPbmUgY2FuIG1ha2UgYSBmdW5jdGlvbiwgbGlrZSBhIGthLWFic3RyYWN0aW9uLCBhbmQg ZmlsbCBhbGwgc3VtdGkgcGxhY2VzLCBsZWF2aW5nIG5vIHBsYWNlIGZvciBhICcnY2UndScnLiBU aGUgcmVzdWx0aW5nIGJyaWRpIGFyZSB3ZWlyZDoKCicnbWkga2FrbmUgbG8ga2EgbWkgbWVya28g bG8gbWkgYmFuZ3UnJyAtICJJIGNhbiBteSBsYW5ndWFnZSBpcyBBbWVyaWNhbiIuIFRoaXMgaXMg Y2xlYXJseSBhIHR5cGUgZXJyb3IuIFNvbWUgcGVvcGxlIHJlZ2FyZCBmdW5jdGlvbnMgd2l0aG91 dCBhbnkgJydjZSd1JycgdG8gYmUgZXF1aXZhbGVudCB0byBicmlkaSBhYnN0cmFjdGlvbnMsIHNv IHRoYXQKCicnbWkga3JpY2kgbG8ga2EgbWkgdnJ1ZGUgbGEgY2V2bmknJyBpcyB0aGUgc2FtZSBh cyAnJ21pIGtyaWNpIGxvIGR1J3UgbWkgdnJ1ZGUgbGEgY2V2bmknJyAtICJJIGJlbGlldmUgdGhh dCBJIGFtIGdvb2QgaW4gdGhlIGV5ZXMgb2YgR29kIiwgYW5kIGlzIGp1c3QgYXMgZ29vZCBhIHNl bnRlbmNlIGluIExvamJhbiBhcyBpdHMgdHJhbnNsYXRpb24gaXMgaW4gRW5nbGlzaC4gSW4gbXkg b3Bpbmlvbiwgb25lIHNob3VsZCByZWZyYWluIGZyb20gdXNpbmcgYW55IG9mIHRoZSBmdW5jdGlv biBhYnN0cmFjdG9ycyBpZiBvbmUgZG9lc24ndCB3YW50IHRvIHVzZSBhIGZ1bmN0aW9uLiBJZiB5 b3Ugd2FubmEgdXNlICcnZHUndScnLCB1c2UgJydkdSd1JycuCgoKClRoZSBvdGhlciBhYnN0cmFj dG9yIHdoaWNoIGNsZWFybHkgY2FuIHByb3ZpZGUgYSBmdW5jdGlvbiBpcyAnJ25pJycuIExpa2Ug JydrYScnLCBhICcnY2UndScnIGNhbiBiZSBwbGFjZWQgaW4gYSAnJ25pJycgYWJzdHJhY3Rpb24s IGJ1dCBpdCdzIG5vdCBtYW5kYXRvcnkuIFRodXMsIGlmIG5vICcnY2UndScnIGlzIHBsYWNlZCBp biBhICcnbmknJy1hYnN0cmFjdGlvbiwgb25lIGNhbm5vdCBhc3N1bWUgdGhhdCBpdCdzIGVsaWRl ZCAtIGl0IG1pZ2h0IHNpbXBseSBub3QgYmUgdGhlcmUuIElmIHRoZSBtYWluIHNlbGJyaSBpcyBu b3Qgb25lIHdoaWNoIGNsZWFybHkgbmVlZHMgdG8gZmlsbCBhICcnY2UndScnLXBsYWNlLCBsaWtl ICcnem1hZHUnJyBhbmQgJydtbGVjYScnLCB0aGVyZSdzIHByb2JhYmx5IG5vICcnY2UndScnIGF0 IGFsbC4KCkluIGFsbCBvdGhlciBhc3BlY3RzLCB0aGUgd2F5ICcnY2UndScnIHdvcmtzIHdpdGhp biB0aGUgYWJzdHJhY3Rpb24gaXMganVzdCBsaWtlICcna2EnJywgc28gdGhlIGRpZmZlcmVuY2Ug aXMgcHVyZWx5IHNlbWFudGljYWwuIFdoZXJlYXMgJydrYScnIGNyZWF0ZXMgYSBzZWxicmksICcn bmknJyBjcmVhdGVzIGFuIGFtb3VudC4gSGVyZSdzIHRoZSBkZWZpbml0aW9uIG9mIHRoZSB3b3Jk OgoKCgpfXycnbmknJ19fOiBBbW91bnQgYWJzdHJhY3Rpb246IHgxIGlzIHRoZSBhbW91bnQgb2Yg QlJJREkgb24gdGhlIHNjYWxlIHgyCgpCZWluZyBmYW1pbGlhciB3aXRoICcna2EnJywgaXRzIHVz YWdlIHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQ6CgonJ21pIHptYWR1IGRvIGxvIG5pIHtjZSd1 fSB4ZWtyaScnIC0gIkkgZXhjZWVkIHlvdSBpbiBhbW91bnQ6ICJYIGlzIGJsYWNrIiwgb3I6ICJJ J20gYmxhY2tlciB0aGFuIHlvdS4iIEFzIHN0YXRlZCBpbiBsZXNzb24gdHdlbnR5LWVpZ2h0LCB0 aGlzIG1ha2VzIHRvdGFsIHNlbnNlIGJlY2F1c2UgdGhlIGJyaWdodG5lc3Mgb2Ygb3VyIHNraW4g Y291bGQgYmUgbWVhc3VyZWQgYnkgYSBjYW1lcmEuIEhvd2V2ZXIsIHNvbWUgcGVvcGxlIHdpbGwg bm90IGFjY2VwdDoKCicnbGUgbmkgbWkgcGVuZG8gZG8nJyAtICJIb3cgbXVjaCB3ZSBhcmUgZnJp ZW5kcyIuIEkgdGhpbmsgdXNpbmcgYW1vdW50cyBpbiB0aGlzIHdheSBpcyBmaW5lLCBidXQgdGhh dCBpcyBhbiBpc3N1ZSBvZiBhIHBoaWxvc29waGljYWwgZGViYXRlIEkgc3dlcHQgdW5kZXIgdGhl IGNhcnBldCB0d28gbGVzc29ucyBhZ28sIGFuZCBJJ20gbm90IGdvbm5hIHRha2UgaXQgb24gaGVy ZS4KCgoKSXQncyBhYnNvbHV0ZWx5IGNsZWFyLCBob3dldmVyLCB0aGF0IGl0J3Mgd3JvbmcgdG8g dXNlICcnbmknJyBhcyBhIHdheSB0byBlbnVtZXJhdGUgaG93IG1hbnkgb2JqZWN0cyBmaXQgYSBz ZWxicmkgLSBpdCdzIGFsd2F5cyBhYm91dCB0byB3aGljaCBleHRlbnQgY2VydGFpbiBzdW10aSBm aXQgYSBzZWxicmkuIFRodXM6IAoKJydkbyBtbGVjYSBtaSBsbyBuaSBwYW56aSBjZSd1JycgbWVh bnMgIllvdSBhcmUgbGVzcyBvZiBhIHBhcmVudCB0aGFuIEkgYW0iLCBhbmQgbm90ICJZb3UgaGF2 ZSBmZXdlciBjaGlsZHJlbiB0aGFuIG1lIi4KCkluIGNhc2UgeW91J3JlIGN1cmlvdXMgKEkgd2Fz KSwgdGhlIGp1ZnJhICcnem8nZSBwYW56aSBjZSd1JycgaW4gdGhlIHByZXZpb3VzIGV4YW1wbGUg YWN0dWFsbHkgcmVmZXJzIHRvIHR3byBkaXN0aW5jdCBicmlkaSwgYmVjYXVzZSB0aGUgc2VsYnJp IGZpbGxzIHRoZSBvcGVuICcnY2UndScnLXBsYWNlIHR3aWNlLCBvbmNlIGZvciAnJ2RvJycsIGFu ZCBvbmNlIGZvciAnJ21pJycsIG1ha2luZyB0aGUgdHdvIHN1Yi1icmlkaTogJyd6bydlIHBhbnpp IGRvJycgYW5kICcnem8nZSBwYW56aSBtaScnLiBTaW5jZSB0aGVzZSB0d28gYnJpZGkgYXJlIGNv bnNpZGVyZWQgZGlmZmVyZW50LCB0aGUgJyd6bydlJycgbmVlZCBub3QgcmVmZXIgdG8gdGhlIHNh bWUgb2JqZWN0LgoKCgpXaGF0IGRvZXMgaXQgbWVhbiBpZiB5b3UgZG9uJ3QgdXNlIGEgJydjZSd1 JycgaW5zaWRlIGEgJyduaScnLWFic3RyYWN0aW9uPyBXZWxsLCB0aGVuIHRoZSBtYWluIHNlbGJy aSBjYW4ndCBmaWxsIGFueSBvZiB0aGUgc3VtdGkgaW4gdGhlIGFic3RyYWN0aW9uLCBzbyB0aGVy ZSdzIGEgZ29vZCBjaGFuY2UgaXQgd29uJ3QgbWFrZSBhbnkgc2Vuc2UsIGp1c3QgbGlrZSAnJ2th JyctYWJzdHJhY3Rpb25zLiBIb3dldmVyLCBpZiAnJ25pJycgaXRzZWxmIGlzIHRoZSBtYWluIHNl bGJyaSwgaXQncyB0b3RhbGx5IGZpbmUgdG8gYXZvaWQgdXNpbmcgYW55ICcnY2UndScnIGF0IGFs bDoKCicnbGkgZHUnZSBuaSBkbyBuZWxjaSBsbyB2YW5qdScnIC0gIllvdSBsaWtlIHdpbmUgdG9v IG11Y2giLgoKCgpUaGUgbGFzdCBvZiB0aGUgYWJzdHJhY3RvcnMgd2UgdHJlYXQgaW4gdGhpcyBs ZXNzb24gaXMgJydzaSdvJycsIHRoZSBjb25jZXB0IGFic3RyYWN0b3IuICcnc2knbycnIG1heSBi ZSBjb25zaWRlcmVkIGEgZnVuY3Rpb24sIG9yIGl0IG1heSBub3QgYmUgY29uc2lkZXJlZCBhIGZ1 bmN0aW9uLiBBICcnc2knbycnLWFic3RyYWN0aW9uIGNlcnRhaW5seSBjb250YWlucyBhICcnY2Un dScnIC0gaW4gZmFjdCwgdW5kZXIgdGhlIHVuZGVyc3RhbmRpbmcgd2hpY2ggSSBhbSB0ZWFjaGlu ZywgYSAnJ3NpJ28nJy1hYnN0cmFjdGlvbiBhbHdheXMgY29udGFpbnMgbm90aGluZyBidXQgJydj ZSd1JydzISBUaGVzZSAnJ2NlJ3UnJ3MsIHVubGlrZSB0aG9zZSBvZiAnJ2thJycgb3IgJyduaScn LCByZW1haW4gb3BlbiBhbmQgY2Fubm90IGJlIGZpbGxlZCBieSBhbnkgc2VsYnJpLiBJbiBvdGhl ciB3b3JkcywgdGhlIGZ1bmN0aW9uIGNhbm5vdCBiZSBhcHBsaWVkIHRvIGFueXRoaW5nLCB3aGlj aCBpcyB3aGF0IG1ha2VzIGl0IGEgbWF5YmUtZnVuY3Rpb24uCgonJ19fc2knb19fJycgQ29uY2Vw dCBhYnN0cmFjdG9yOiB4MSBpcyB4MidzIGNvbmNlcHQgb2YgQlJJREkKCkxldCdzIGhhdmUgYSBm ZXcgZXhhbXBsZXM6CgonJ2xvIHNpJ28geGVibmknJywgd2hpY2gsIGJlY2F1c2UgYWxsIHRoZSBz dW10aSBwbGFjZXMgYXJlIGZpbGxlZCB3aXRoICcnY2UndScnIGlzIGVxdWl2YWxlbnQgdG86IAoK JydsbyBzaSdvIGNlJ3UgeGVibmkgY2UndScnIC0gIlRoZSBjb25jZXB0IG9mOiAiWCBoYXRlcyBZ IiIgPSAiSGF0ZSBpdHNlbGYiCgoKClRoZSBteXRoaWNhbCBjcmVhdHVyZSBCYWxyb2cgZnJvbSBM b3JkIG9mIHRoZSBSaW5ncyBpcyBkZXNjcmliZWQgYXMgYmVpbmcgInNoYWRvdyBhbmQgZmxhbWUi LCB0aGUgcG9lc3kgb2Ygd2hpY2ggYXBwZWFycyBtdWNoIHN0cm9uZ2VyIGluIExvamJhbjogJyds byBiYWxyb2cgY3Ugc2knbyBmYWdyaSBqb2kgbWFua3UnJyBpcyBhc3NlcnRpbmcgbm90IG9ubHkg dGhhdCB0aGV5J3JlIG1hZGUgb3V0IG9mIHNoYWRvdyBhbmQgZmxhbWUsIGJ1dCBhbHNvIHN1Z2dl c3RpbmcgdGhhdCB0aGV5IGFyZSB0aGUgcHJvdG9weXRpY2FsIFNoYWRvdyBhbmQgRmxhbWUsIGZy b20gd2hpY2ggYWxsIG90aGVyIHNoYWRvdyBhbmQgZmxhbWUgZGVyaXZlcy4KCkV0eW1vbG9naWNh bGx5LCBzaSdvIGRlcml2ZXMgZnJvbSBzaWRibywgImlkZWEiLCBidXQgaW4gY3VycmVudCB1c2Fn ZSwgYW4gaWRlYSBpcyBjb25zaWRlcmVkIGEgdGV4dCBhbmQgbm90IGEgY29uY2VwdC4KCgoKVGhl IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdGhyZWUgYWJzdHJhY3RvcnMgJydrYScnLCAnJ25pJycg YW5kICcnc2knbycnIGNhbiBiZSBpbGx1c3RyYXRlZCB3aXRoIGEgZmV3IG1vcmUgZXhhbXBsZXMg Zm9yIGNvbXBhcmlzYXRpb246CgonJ2xvIGthIGNyaW5vIGN1IHBsdWthIG1pJycgLSAiQmVpbmcg Z3JlZW4gcGxlYXNlcyBtZSIKCicnbG8gbmkgY3Jpbm8gY3UgcGx1a2EgbWknJyAgLSAiSG93IG11 Y2gge3pvJ2V9IGlzIGdyZWVuIHBsZWFzZXMgbWUiIChubyAnJ2NlJ3UnJyEpCgonJ2xvIHNpJ28g Y3Jpbm8gY3UgcGx1a2EgbWknJyAtICJHcmVlbm5lc3MgcGxlYXNlcyBtZSIKCgoKJydtaSBuaXRj dSBsbyBrYSBzaXBuYSBrdSBsbyBrYSBrYW5ybycnIC0gIkkgbmVlZCBzbGVlcCBpbiBvcmRlciB0 byBiZSBoZWFsdGh5IgoKJydtaSBuaXRjdSBsbyBzaSdvIHNpcG5hIGxvIGthIHRhdmxhIGZpIGxv IHNpcG5hJycgLSAiSSBuZWVkIHRoZSBjb25jZXB0IG9mIHNsZWVwIGluIG9yZGVyIHRvIHNwZWFr IGFib3V0IHNsZWVwaW5nIHRoaW5ncyIKCkFuZCBJIHdhcyB0ZW1wdGVkIHRvIHdyaXRlICcnbWkg bml0Y3UgbG8gbmkgc2lwbmEga3UgbG8ga2EgdnJlamkgcmknJyAtICJJIG5lZWQgdGhlIGFtb3Vu dCBvZiBob3cgbXVjaCB7em8nZX0gc2xlZXBzIiwgYnV0IHRoYXQgZG9lc24ndCBzZWVtIHRvIG1h a2UgYSBsb3Qgb2Ygc2Vuc2UuCgoKCgoKISFMb2piYW4gTGVzc29ucyAtIExlc3NvbiB0aGlydHkt b25lICh0aGUgbm90LXNvLWN1dGUgYXNzb3J0ZWQgd29yZHMpCgpZZXMsIHRoaXMgbGVzc29uIGlz IHlldCBhbm90aGVyIHdoaWNoIGZvY3VzZXMgb24gYXNzb3J0ZWQgd29yZHMuIFRoaXMgdGltZSwg aG93ZXZlciwgdGhlIGNvbnRlbnQgb2YgdGhlIGxlc3NvbiBpcyBub3QgY2hvc2VuIGJ5IGNvbW1v biB1c2FnZTogVW5saWtlIHdvcmRzIGxpa2UgJydqYWknJyBhbmQgJydzaScnLCBtb3N0IG9mIHRo ZSBmb2xsb3dpbmcgd29yZHMgc2VlIGxpdHRsZSB1c2FnZSBpbiBvcmRpbmFyeSBjb252ZXJzYXRp b24uIFNvbWUgb2YgdGhlbSBhcmUsIGhvd2V2ZXIsIGltcG9ydGFudCB0byB1bmRlcnN0YW5kaW5n IHRoZSBmb2xsb3dpbmcgbGVzc29ucywgYW5kIHNvIHRoZXNlIHdvcmRzIG11c3QgYmUgYXdrd2Fy ZGx5IHBsYWNlZCBiZWZvcmUgdGhlaXIgdXNhZ2UgaW4gdGhlc2UgbGVzc29ucy4KCgoKQmVmb3Jl IHdlIHZlbnR1cmUgdG8gb2JzY3VyZSB3b3JkcywgdGhlcmUncyBvbmUgd29yZCB3aGljaCBJIHRo aW5rIGRlc2VydmVzIGEgbW9yZSB0aG9yb3VnaCBleHBsYW5hdGlvbiB0aGFuIGl0IGhhcyBiZWVu IGdpdmVuIHNvIGZhcjogJydrYXUnJy4KCicna2F1Jycgd2FzIGV4cGxhaW5lZCBpbiBsZXNzb24g dHdlbHZlLCBidXQgdGhlIHJlYWwgaW1wbGljYXRpb25zIG9mIGl0IHdhcyBub3QuIElmIHlvdSBo YXZlIGZvcmdvdHRlbiB3aGF0IGl0IG1lYW5zLCBJIGFkdmljZSB5b3UgdG8gZ28gYmFjayBhbmQg c2VlLiBVbmZvcnR1bmF0ZWx5LCBJIGNhbid0IHByZXNlbnQgYSB0aGVvcnkgb24gd2hhdCAnJ2th dScnIGRvZXMgd2hlbiBpdCdzIHByZXNlbnQgaW4gdGhlIG1haW4gYnJpZGksIG9ubHkgb24gd2hh dCBpdCBkb2VzIGluc2lkZSBhbiBhYnN0cmFjdGlvbi4KCkEgYnJpZGkgd2l0aCBhYnN0cmFjdGlv biBjb250YWluaW5nIGEgJydrYXUnJyBtYWtlcyB0d28gY2xhaW1zOiBUaGUgYnJpZGkgaXRzZWxm IG1ha2VzIG9uZSBjbGFpbSBhcyB1c3VhbCwgYW5kIGltcGxpY2l0IGluIHRoZSBhYnN0cmFjdGlv biBpcyBmdXJ0aGVybW9yZSB0aGUgY2xhaW0gdGhhdCB0aGUgd29yZCAnJ2thdScnIGlzIGF0dGFj aGVkIHRvIGhhcyBhIHJlYWwsIG5vbnplcm8gbWVhbmluZy4KClRoaXMgc2hvdWxkIGJlIGRlbW9u c3RyYXRlZDogVGhlIGJyaWRpICcnbWkgcHUgdmlza2EgbG8gbnUgbWEga2F1IGNsaXZhIGxlIHNh bGNpJycgKEkgc2F3IHdobyBsZWZ0IHRoZSBwYXJ0eSkgbWFrZXMgdHdvIGNsYWltcy4gRmlyc3Qs IGl0IG1ha2VzIGFuIGltcGxpY2l0IGNsYWltIHRoYXQgdGhlICcnbWEnJyByZWZlcnMgdG8gc29t ZXRoaW5nIHJlYWwuIFRoYXQgaXMsIHRoZSBicmlkaSBhY3R1YWxseSBjbGFpbXMgdGhhdCAnJ2Rh IGNsaXZhIGxlIHNhbGNpJycgKFggbGVmdCB0aGUgcGFydHkpLiBTZWNvbmRseSwgdGhlIG1haW4g YnJpZGkgbWFrZXMgdGhlIGNsYWltIHRoYXQgd2hhdCB0aGUgJydtYScnIHJlZmVycyB0byBpcyB3 aGF0IHdhcyBiZWluZyBzZWVuLCBvciBpbiBsb2piYW4gJydtaSBwdSB2aXNrYSBsbyBudSBkYSBj bGl2YSBsZSBzYWxjaScnLiAoSSBzYXcgdGhhdCBYIGxlZnQgdGhlIHBhcnR5KQoKVGhpcyBwcmlu Y2lwbGUgaXMgbm90IHJlc3RyaWN0ZWQgdG8gdGhlIGFic3RyYWN0b3IgJydudScnLCBvciB0byB0 aGUgcXVlc3Rpb24gd29yZCAnJ21hJycuIFRoZSBzYW1lIHByaW5jaXBsZSBjYW4gYmUgZXh0ZW5k ZWQgdG8gYW55IG90aGVyIGFic3RyYWN0b3IgYW5kIGFueSBvdGhlciBxdWVzdGlvbiB3b3JkLCBh cyBpbiB0aGUgZm9sbG93aW5nIGJyaWRpOgoKJydsYSAuYmFiLiBuYSdlIGJpcnRpIGxvIGR1J3Ug eHUga2F1IGxhIC5taWFzLiBwYW1wZSdvJycgKEJvYiBpc24ndCBzdXJlIHdoZXRoZXIgb3Igbm90 IE1pYSBoYXMgYSBib3lmcmllbmQpIHN0YXRlcyBmaXJzdGx5IHRoYXQgJyd4dScnIGFwcGxpZXMs IHdoaWNoIG1lYW5zIHRoYXQgYSB0cnV0aCB2YWx1ZSBjb3JyZWN0bHkgY2FuIGJlIGFzc2lnbmVk IHRvIHRoZSBicmlkaSwgYW5kIHNlY29uZGx5IHRoYXQgd2hhdCBCb2IgaXNuJ3Qgc3VyZSBhYm91 dCBpcyB0aGUgY29ycmVjdCB0cnV0aCB2YWx1ZSBmb3IgdGhlIGJyaWRpLgoKJydrYXUnJyBjYW4g YWxzbyBiZSBhcHBsaWVkIHRvIGEgbm9uLXF1ZXN0aW9uIHdvcmQuIFRoaXMgZG9lc24ndCByZWFs bHkgY2hhbmdlIHRoZSBtZWFuaW5nIG9mIHRoZSB3b3JkLiBUaGUgc2FtZSBwcm9jZWR1cmUgc3Rp bGwgYXBwbGllczoKCicnZG8gY2EnbyBkanVubyBsbyBkdSd1IGxhIGtyZXN0Y2VuIGthdSBjdSBj aW5iYSBsYSBhbicnID0gIllvdSBhbHJlYWR5IGtub3cgdGhhdCBpdCB3YXMgS3Jpc3RpYW4sIHdo byBraXNzZWQgQW5uZS4iIHN0YXRlcyBmaXJzdGx5IHRoYXQgJydsYSBrcmVzdGNlbiBjdSBjaW5i YSBsYSBhbicnIGFuZCB0aGVuIHRoYXQgJydkbyBjYSdvIGRqdW5vIGxvZHUndSBsYSBrcmVzdGNl biBjdSBjaW5iYSBsYSBhbicnLgoKCgpNb3Zpbmcgb24gdG8gdGhlIG1vcmUgb2JzY3VyZSB3b3Jk cywgd2UgY2FuIGJlZ2luIHdpdGggJyd4aScnOyBpdCdzIGVhc3kuCgpfXycneGknJ19fOiBTdWJz Y3JpcHQuIENvbnZlcnRzIGFueSBmb2xsb3dpbmcgbnVtYmVyIHN0cmluZyB0byBhIHN1YnNjcmlw dCwgd2hpY2ggaGFzIHRoZSBncmFtbWFyIG9mIGFuIGF0dGl0dWRpbmFsIChpZS4gcGxhY2FibGUg cHJhY3RpY2FsbHkgYW55d2hlcmUpLgoKVGhlcmUgYXJlIGZldyBvZmZpY2lhbGx5IGVuY291cmFn ZWQgdXNlcyBvZiAnJ3hpJycsIGJ1dCBwcmVjaXNlbHkgYmVjYXVzZSB0aGUgY29uc3RydWN0ICcn eGknJytudW1iZXIgaGFzIHRoZSBmcmVlIGdyYW1tYXIgb2YgYW4gYXR0aXR1ZGluYWwsIHRoZSBw b3NzaWJsZSB1c2VzIG9mICcneGknJyBhcmUgYWxtb3N0IGVuZGxlc3MuIEluIGdlbmVyYWwsIGl0 J3MgdXNlZCB0byBlbnVtZXJhdGUgYW55IHdvcmQsIHZhcmlhYmxlIG9yIGdyYW1tYXRpY2FsIGNv bnN0cnVjdCwgYXMgb3Bwb3NlZCB0byB3aGF0IGl0IHJlZmVycyB0by4gTGV0J3Mgc2VlIHNvbWUg ZXhhbXBsZXMuCgpsYSB0c2FuaSBjdSBjdXNrdSB6byBjb2kgIC5pIGJhIGJvIGxhIC50cmlsaXlu LiBjdXNrdSBsdSAudWkgY29pIGxhIHRzYW5pIGNvaSBsYSBrbGFrdSBsaSd1ICAuaSBiYSBibyBs YSBrbGFrdSBjdSBzcHVkYSBmaSBsdSBjb2kgdHkuIHhpIHBhIC5lIHR5LiB4aSByZSBkbyd1IHpv J28gbGkndSAtICJUc2FuaSBzYWlkICJoaSIsIHRoZW4gVHJpbGl5biBzYWlkICJIZXkgVHNhbmks IGhleSBLbGFrdSA6KSIsIHRoZW4gS2xha3UgYW5zd2VyZWQgIkhlbGxvIFQxIGFuZCBUMiA6UCIi CgpCZWNhdXNlIGl0J3MgdGhlIHN0YW5kYXJkIHRoYXQgJyd0eS4nIHJlZmVycyB0byB0aGUgbGFz dCBzdW10aSB3aGljaCBiZWdhbiB3aXRoIFQsICcndHknJyBieSBpdHNlbGYgYXMgc2FpZCBieSBL bGFrdSB3b3VsZCBoYXZlIHJlZmVycmVkIHRvIFRzYW5pLiBUd28gX19kaWZmZXJlbnRfXyAnJ3R5 LicnIGNhbiBiZSBtYWRlIGJ5IHN1YnNjcmlwdGluZyB3aXRoICcneGknJy4KCklmIHRoZSByYXJl IHNpdHVhdGlvbiBhcmlzZXMgdGhhdCB3ZSBuZWVkIG1vcmUgdmFyaWFibGVzIG9mIHRoZSB0eXBl ICcnZGEnJyBvciAnJ2J1J2EnJyB0aGF0IHRoZXJlIGFyZSBpbiB0aGUgbGFuZ3VhZ2UsIGFuIGlu ZmluaXRlIG51bWJlciBjYW4gYmUgbWFkZSBieSBzaW1wbHkgc3Vic2NyaXB0aW5nIGFueSBleGlz dGluZyB3aXRoIGEgbnVtYmVyLiBOb3RlIHRoYXQgYSBub24tc3Vic2NyaXB0ZWQgdmFyaWFibGUg aXMgbm90IGRlZmluZWQgYWYgYmVpbmcgZXFpdXZhbGVudCB0byBhbnkgc3Vic2NyaXB0ZWQgb25l LiBUaGF0IGlzOiAnJ3R5JycgaXMgbm90IGFsd2F5cyBlcXVhbCB0byAnJ3R5IHhpIHBhJycgb3Ig Jyd0eSB4aSBubycnIG9yIGFueXRoaW5nIG9mIHRoZSBzb3J0LiBJIGV4cGVjdCB0aGlzIHRvIGJl IHJhcmVseSB1c2VkLCBiZWNhdXNlIGFueSBzZW50ZW5jZSB3aXRoIG1vcmUgdGhhbiAzICcnZGEn Jy1saWtlIHdvcmRzIG9yIG1vcmUgdGhhbiAxMCAnJ2tvJ2EnJy1saWtlIHdvcmRzIHdvdWxkIGJl IGhhcmQgdG8ga2VlcCB0cmFjayBvZi4KCgoKU2Vjb25kLCB3ZSBoYXZlICcna2knJywgb2Ygd2hp Y2ggSSBhbSBub3QgYXdhcmUgb2YgYSBzaW5nZSB1c2FnZSBpbiBteSB0aW1lIG9uIElSQzsgcHJv YmFibHkgbm90IGJlY2F1c2UgdGhlIHdvcmQncyB1c2VsZXNzLCBidXQgYmVjYXVzZSBmZXcgTG9q YmFuaWMgdGV4dHMgYXJlIG9mIHRoZSBraW5kIHdoZXJlIHlvdSBuZWVkIGl0LgoKX18nJ2tpJydf XyAiU3RpY2t5IHRlbnNlIi4gU2V0L3VzZSB0ZW5zZSBkZWZhdWx0OyBlc3RhYmxpc2hlcyBuZXcg b3BlbiBzY29wZSBzcGFjZS90aW1lL21vZGFsIHJlZmVyZW5jZSBiYXNlLgoKQW55IHJvdyBvZiB0 ZW5zZSB3b3JkcyBjYW4gYmUgc3VmZml4ZWQgd2l0aCAnJ2tpJycgdG8gbWFrZSB0aGUgdGVuc2Uo cykgYXBwbHkgdG8gYWxsIGZvbGxvd2luZyBicmlkaS4gV2hlbiwgZm9yIGluc3RhbmNlLCB0ZWxs aW5nIGEgc3RvcnksIHRoaXMgY2FuIGJlIHVzZWQgdG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZSBk ZWZhdWx0IHRpbWUgLSB0aGUgdGltZSBhcyBtZWFudCB3aXRob3V0IGFueSB0ZW5zZSB3b3JkcyAt IGlzIHRoZSB0aW1lIHRoZSBzdG9yeSBpcyBwbGFjZWQgaW4uIFVzdWFsbHksIHRoaXMgd2lsbCBu b3QgYmUgbmVjZXNzYXJ5OyBiZWdpbm5pbmcgYSBmYWlyeXRhbGUgd2l0aCAnJ3B1IHp1IHZ1IGt1 JycsIG9uZSBjYW4gYXNzdW1lIHRoYXQgdGhlIGVudGlyZSB0YWxlIGlzIGhhcHBlbmluZyBhIGxv bmcgdGltZSBhZ28gYW5kIGZhciBhd2F5LiBMZXQncyBoYXZlIGFuIGV4YW1wbGU6CgonJ3B1IHp1 IHZ1IGtpIGt1IHphc3RpIGZhIGxvIHB1a2NsaXRlIGplIGNtYWx1IG5peGxpIGdvaSBrb+KAmWEg IC5pIHJvIGRhIHBvaSAnJ1snJ3B1IHp1IHZ1JyddJycgdmlza2Ega2/igJlhIGN1IG5lbGNpIGtv 4oCZYScnIC0gIk9uY2UgdXBvbiBhIHRpbWUgdGhlcmUgd2FzIGEgc3dlZXQsIGxpdHRsZSBnaXJs LiBFdmVyeW9uZSB3aG8gc2F3IGhlciBsaWtlZCBoZXIiLiBUaGUgJydraScnIGFsbG93cyB1cyB0 byBlbGlkZSB0aGUgdGhyZWUgdGVuc2VzIGluIHRoZSBzZWNvbmQgYnJpZGksIGFuZCBpbiBhbGwg dGhlIGJyaWRpIHRvIGZvbGxvdy4KClNvLCBpZiBhIGJ1bmNoIG9mIHRlbnNlcyBoYXZlIGJlZW4g bWFrZSBzdGlja3kgd2l0aCAnJ2tpJycsIGhvdyBkbyB3ZSB1bnN0aWNrIHRoZW0/IFNpbXBsZSB1 c2UgJydraScnIGJ1IGl0c2VsZiwgYW5kIGFsbCBzdGlja3kgdGVuc2VzIGFyZSBtYWRlIHVuc3Rp Y2t5LgoKTGFzdGx5LCBzZXZlcmFsIHNldHMgb2YgdGVuc2VzIGNhbiBiZSBtYWRlIHN0aWNreSBi eSBzdWJzY3JpcHRpbmcgJydraScnLiBJZiB0aGVyZSBhcmUgc2V2ZXJhbCBvZiBzdWNoIHNldHMg aW4gdXNhZ2UgYXQgYW55IGdpdmVuIHRpbWUsIG9uZSBjYW4gdXNlIHRoZSBzdWJzY3JpcHRlZCAn J2tpJydzIHRvIG1ha2UgdGhlIGNvcnJlc3BvbmRpbmcgc2V0IG9mIHRlbnNlcyBhcHBseS4gVW5z dWJzY3JpcHRlZCAnJ2tpJycgYWxvbmUgc3RpbGwgbWFrZXMgYWxsIHRlbnNlIHN0aWNraW5lc3Mg ZGlzYXBwZWFyLCBzbyB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdCB0byB1c2UgJydraScnIHVu c3Vic2NyaXB0ZWQgaWYgeW91IHBsYW4gb24gdXNpbmcgc2V2ZXJhbCBzZXRzIG9mIHRlbnNlcy4K CgoKQ2hhbmdpbmcgc3ViamVjdC4gVGhlcmUncyBhIHNldCBvZiBzdW10Y2l0YSB3aGljaCBhcmUg b2Z0ZW4gdXNlZCwgYnV0IHdoaWNoIEkgZGFyZSBub3QgdHJ5IHRvIGRlZmluZSBpZiBub3QgdW5k ZXIgdGhlIGRpc2NsYWltZXIgb2YgcGFydCB0aHJlZS4gTGV0J3Mgc2VlIG9mZmljaWFsIGRlZmlu aXRpb25zIGZvciB0d28gb2YgdGhlbSBmaXJzdC4KCl9fJydjYSdhJydfXzogbW9kYWwgYXNwZWN0 OiBhY3R1YWxpdHkvb25nb2luZyBldmVudC4gQnJpZGkgaGFzL2lzL3dpbGwgaGFwcGVuIGR1cmlu ZyB1bmRlciB0aGUgY2lyY3Vtc3RhbmNlcyBvZiB7c3VtdGl9CgpfXycna2EnZScnX186IG1vZGFs IGFzcGVjdDogaW5uYXRlIGNhcGFiaWxpdHk7IHBvc3NpYmx5IHVucmVhbGl6ZWQuIEJyaWRpIGlz IHBvc3NpYmxlIHVuZGVyIHRoZSBjaXJjdW1zdGFuY2VzIG9mIHtzdW10aX0KCkxldCdzIGZpcnN0 IGNvbnRyYXN0ICcnY2EnYScnIHdpdGggJydrYSdlJycuICcna2EnZScnIG1lYW5zIHRoYXQgdGhl IGJyaWRpIGlzICJwb3NzaWJsZSBpZiB0aGUgZXZlbnQgb2YgU1VNVEkgaGFzL2lzL3dpbGwgb2Nj dXIiLiAnJ2NhJ2EnJyBieSBjb250cmFzdCwgbWVhbnMgdGhhdCB0aGUgYnJpZGkgImhhcywgaXMs IG9yIHdpbGwgaGFwcGVuIGlmIHRoZSBldmVudCBvZiBTVU1USSBoYXMvaXMvd2lsbCBvY2N1ciIu IAoKTGlrZSBhbGwgc3VtdGNpdGEsIHRoZWlyIGNvcnJlc3BvbmRpbmcgc3VtdGkgY2FuIGJlIGVs aWRlZCBpZiB0aGUgc3VtdGNpdGEgaXMgcGxhY2VkIGJlZm9yZSB0aGUgc2VsYnJpOgoKJydsZSB2 aSBzb3ZkYSBrYSdlIGZ1bHRhIC5pIGphJ28gYm8gcmkgZnVzcmEnJyAtICJUaGlzIGVnZyBmbG9h dHMuIFRoZXJlZm9yZSwgaXQncyByb3R0ZW4iLgoKQnkgdXNpbmcgJydrYSdlJycsIHRoaXMgc2Vu dGVuY2UgZG9lcyBub3Qgc3RhdGUgdGhhdCB0aGUgZWdnIGhhcyBmbG9hdGVkLCBvciBldmVyIHdp bGwgZmxvYXQsIGJ1dCByYXRoZXIgdGhhdCBpdCBjb3VsZCBmbG9hdC4KCgoKX18nJ3B1J2knJ19f OiBtb2RhbCBhc3BlY3Q6IGNhbiBhbmQgaGFzOyBkZW1vbnN0cmF0ZWQgcG90ZW50aWFsLiBCcmlk aSBjb3VsZCBvciBjb3VsZCBub3QgaGFwcGVuLCBidXQgaW4gZmFjdCBpdCBpcy9kaWQvd2lsbCBo YXBwZW4gdW5kZXIgdGhlIGNpcmN1bXN0YW5jZSBvZiB7c3VtdGl9CgpfXycnbnUnbycnX186IG1v ZGFsIGFzcGVjdDogY2FuIGJ1dCBoYXMgbm90OyB1bnJlYWxpemVkIHBvdGVudGlhbC4gQnJpZGkg aXMgcG9zc2libGUsIGJ1dCBpcy93aWxsL2hhdmUgbm90IGhhcHBlbmVkIHVuZGVyIHtzdW10aX0K CgoKVW5kZXJzdGFuZGluZyAnJ2thJ2UnJyBhbmQgJydjYSdhJycsICcnbnUnbycnIHNpbXBseSBt ZWFucyAnJ2thJ2UgamUgbmEga3UgY2EnYScnLCBhbmQgJydwdSdpJycgbWVhbnMgJydjYSdhIGpl IGthJ2UgbmEga3UnJy4gCgpIaXN0b3JpY2FsbHksIHRoZXNlIGZvdXIgd29yZHMgd2FzIHRlbnNl IHN1bXRjaXRhIC0gdGhlcmVmb3JlIHRoZSAibW9kYWwgYXNwZWN0IiBpbiB0aGVpciBkZWZpbml0 aW9ucy4gQWxsIHRlbnNlIHN1bXRjaXRhIHdhcyB0aGVuIG5vdCBjb25zaWRlcmVkIHN1bXRjaXRh IGF0IGFsbCwgYnV0IHJhdGhlciAic2VsYnJpIHRjaXRhIi4gQSBtb2Rlcm4gdW5kZXJzdGFuZGlu ZyBvZiBMb2piYW4gaXMgZ2FpbmluZyBwb3B1bGFyaXR5LCB3aGVyZWluIHRoZSB0ZW5zZSBzdW10 Y2l0YSBhcmUgY29uc2lkZXJlZCBzdW10Y2l0YSwgYWxtb3N0IGV4YWN0bHkgbGlrZSB0aGUgQkFJ LCBhbmQgaW4gd2hlcmUgc2VsYnJpIHRjaXRhIGFyZSBub3QgdXNlZC4gCgpCZWNhdXNlIG9mIHRo ZXNlIGZvdXIgd29yZHMnIGhpc3RvcnkgYXMgc2VsYnJpIHRjaXRhLCB0aGV5IGNhbiBiZSBmcmVl bHkgZWxpZGVkIC0gaW5kZWVkLCBzaW5jZSBvbmUgb2YgdGhlIGZvdXIgd29yZHMgYWx3YXlzIGFw cGxpZXMsIG9uZSBpcyBhbHdheXMgYXNzdW1lZCB0byBiZSBlbGlkZWQuIFRoaXMgaXMgbW9zdCBv ZnRlbiAnJ2NhJ2EnJy4gSW5kZWVkLCBpdCdzIHNvIG9mdGVuICcnY2EnYScnIHRoYXQgb25lIGNv dWxkIHdvbmRlciB3aHkgJydjYSdhJycgaXMgbm90IHRoZSBkZWZhdWx0LgoKT25lIHJlYXNvbiBp cyB0aGF0IHNvbWUgc2VsYnJpIGhhcyB0d28gdXNlZnVsIGRlZmluaXRpb25zLCBvbmUgd2hpY2gg aW1wbGllcyAnJ2thJ2UgU0VMQlJJJycgYW5kIG9uZSB3aGljaCBpbXBsaWVzICcnY2EnYSBTRUxC UkknJy4gRm9yIGFuIGV4YW1wbGUsIHNlZSAnJ2Zhc251JycsIHdoaWNoIGNhbiBtZWFuICJ4MSBp cyBoYXBwZW5pbmciIG9yICJ4MSBpcyBhbiBldmVudCIsIHdoZXJlIHRoZSBmaXJzdCBpbXBsaWVz ICcnY2EnYSBmYXNudScnIGFuZCB0aGUgc2Vjb25kICcna2EnZSBmYXNudScnCgpBbm90aGVyIHVz ZSBvZiAiaW1wbGllZCAnJ2thJ2UnJyIgaXMgYXMgYSB3YXkgdG8gZXNjYXBlIGFuIGFubm95aW5n IHBoaWxvc29waGljYWwgcHJvYmxlbSBpbiB0aGUgbGFuZ3VhZ2UuIEEgc2VsYnJpIG9ubHkgYXBw bGllcyBpZiBhbGwgaXRzIHBsYWNlcyBhcHBseSB0b28uIEZvciBzb21lIHNlbGJyaSwgbGlrZSAn J2thYnJpJycsIHRoYXQncyBhIHByb2JsZW0uCgpfXycna2FicmknJ19fIHgxIGlzIGEgY3VwIGNv bnRhaW5pbmcgY29udGVudHMgeDIgYW5kIG9mIG1hdGVyaWFsIHgzCgpUaGUgZGVmaW5pdGlvbiBz dWdnZXN0cyB0aGF0IGlmIHRoZSBjb250ZW50IG9mIHRoZSBjdXAgaXMgcmVtb3ZlZCwgdGhlIHgy IG5vIGxvbmdlciBhcHBsaWVzIGFuZCBpdCBzdG9wcyBiZWluZyAnJ2xvIGthYnJpJycuIEltcGxp ZWQgJydrYSdlJycsIG9yIG1vcmUgZml0dGluZ2x5LCAnJ251J28nJywgbGV0IHVzIGVzY2FwZSB0 aGF0IHByb2JsZW0uCgoKCgoKISEhRW5kIG9mIGxlc3NvbnMKClNvcnJ5LCBidXQgYXMgb2Ygbm93 LCB0aGVyZSBhcmUgbm8gbW9yZSBsZXNzb25zIGluIHRoaXMgc2VyaWVzLiBQZXJoYXBzIG1vcmUg d2lsbCBiZSBhZGRlZCBsYXRlci4gTWVhbndoaWxlLCBmZWVsIGZyZWUgdG8gdmlzaXQgKCh3YXZl bGVzc29uc2NvbnRpbnVlZHx0aGUgZmlyc3QgcGFydCBvZiBXYXZlbGVzc29uc2NvbnRpbnVlZCkp IG9yICgod2F2ZWxlc3NvbnNjb250aW51ZWRwMnxUaGUgc2Vjb25kIHBhcnQgb2YgV2F2ZWxlc3Nv bnNjb250aW51ZWQpKS4KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpXaWtpbmV1cm90aWMgbWFpbGluZyBsaXN0Cldpa2luZXVyb3RpY0Bsb2piYW4ub3Jn Cmh0dHA6Ly9tYWlsLmxvamJhbi5vcmcvbWFpbG1hbi9saXN0aW5mby93aWtpbmV1cm90aWMK