Received: from localhost ([::1]:40300 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1W7ZH4-0004jv-DI; Sun, 26 Jan 2014 15:37:58 -0800 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:45958 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1W7ZGw-0004jn-0h for wikichanges@lojban.org; Sun, 26 Jan 2014 15:37:57 -0800 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Sun, 26 Jan 2014 15:37:49 -0800 From: "Apache" Date: Sun, 26 Jan 2014 15:37:49 -0800 To: wikichanges@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 23:37 UTC Comment: Edit after durka42's proofreading 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 ---- ---------------------- -------------------------------------------------- 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: [Wikichanges] Wiki page wavelessonscontinuedp3 changed by klaki X-BeenThere: wikichanges@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: wikichanges-bounces@lojban.org VGhlIHBhZ2Ugd2F2ZWxlc3NvbnNjb250aW51ZWRwMyB3YXMgY2hhbmdlZCBieSBrbGFraSBhdCAy MzozNyBVVEMKQ29tbWVudDogRWRpdCBhZnRlciBkdXJrYTQyJ3MgcHJvb2ZyZWFkaW5nCgpZb3Ug Y2FuIHZpZXcgdGhlIHBhZ2UgYnkgZm9sbG93aW5nIHRoaXMgbGluazoKIApodHRwOi8vd3d3Lmxv amJhbi5vcmcvdGlraS93YXZlbGVzc29uc2NvbnRpbnVlZHAzCgpZb3UgY2FuIHZpZXcgYSBkaWZm IGJhY2sgdG8gdGhlIHByZXZpb3VzIHZlcnNpb24gYnkgZm9sbG93aW5nIHRoaXMgbGluazogCmh0 dHA6Ly93d3cubG9qYmFuLm9yZy90aWtpL3Rpa2ktcGFnZWhpc3RvcnkucGhwP3BhZ2U9d2F2ZWxl c3NvbnNjb250aW51ZWRwMyZjb21wYXJlPTEmb2xkdmVyPTgmbmV3dmVyPTkKCgoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpUaGUgY2hh bmdlcyBpbiB0aGlzIHZlcnNpb24gZm9sbG93IGJlbG93LCBmb2xsb3dlZCBhZnRlciBieSB0aGUg Y3VycmVudCBmdWxsIHBhZ2UgdGV4dC4KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKCgorLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpAQCAtTGluZXM6IDUyLTEwNyBjaGFuZ2Vk IHRvICtMaW5lczogNTItMTA4IEBACistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rCicnY2knaSBidSdlIHpvJ3UgbWkgYnUnZSBkbycnIC0g IkNvbmNlcm5pbmcgYW4gaW5maW5pdGUgYW1vdW50IG9mIHJlbGF0aW9uc2hpcHM6IEkgYW0gaW4g YWxsIHRob3NlIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4iIG9yICJUaGVyZSBleGlzdHMgYW4gaW5m aW5pdGUgYW1vdW50IG9mIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB1cyIKWW91IGNhbid0IHF1YW50 aWZ5IHRoZSBzZWxicmkgdmFyaWFibGVzIGluIHRoZSBicmlkaSBpdHNlbGYsIHRob3VnaC4gVGhl biBpdCB3aWxsIGFjdCBhcyBhIHN1bXRpOiAnJ21pIGNpJ2kgYnUnYSBkbycnIGlzIG5vdCBhIGJy aWRpLiBUaGVyZSBhcmUgc29tZSBzaXR1YXRpb24gd2hlcmUgdGhpcyB3aWxsIGJlY29tZSBwcm9i bGVtYXRpYyAtIGxlc3NvbiB0d2VudHktbmluZSB3aWxsIHRlYWNoIGhvdyB0byBvdmVyY29tZSB0 aG9zZSBwcm9ibGVtcy4KKyAKCiEhTG9qYmFuIExlc3NvbnMgLSBMZXNzb24gdHdlbnR5LWVpZ2h0 ICh0eXBlcykKVGhpcyBsZXNzb24gYWxvbmcgd2l0aCB0aGUgZm9sbG93aW5nIHRocmVlIGxlc3Nv bnMgd2lsbCBiZSBvbiBzZW1hbnRpY3MgLSBob3cgdG8gaW50ZXJwcmV0IHRoZSBtZWFuaW5nIG9m IGNlcnRhaW4gY29uc3RydWN0cy4gVGhpcyBsZXNzb24gaXMgb24gdGhlIG1lYW5pbmcgb2YgZGlm ZmVyZW50IHR5cGVzIG9mIHN1bXRpLCBhbmQgd2lsbCBnZXQgcGhpbG9zb3BoaWNhbCBhbmQgYSBi aXQgaGF6eS4gVGhlIGZvbGxvd2luZyB0d28gd2lsbCBiZSBvbiBhYnN0cmFjdGlvbnMsIHdoaWNo LCBldmVuIHRob3VnaCB5b3UgYWxyZWFkeSBiZWNhbWUgZmFtaWxpYXIgd2l0aCB0aGVtIHR3ZW50 eS10d28gbGVzc29ucyBhZ28sIHdpbGwgYmVjb21lIG1vcmUgdGVjaG5pY2FsIGFzIEkgYXR0ZW1w dCB0byBleHBsYWluIHRoZWlyIHNlbWFudGljIGFuZCBncmFtbWF0aWNhbCBwcm9wZXJ0aWVzLgoK LSBUZWFjaGluZyAoYW5kIGxlYXJuaW5nKSBzZW1hbnRpY3MgaXMgbXVjaCBtb3JlIHRyaWNreSB0 aGFuIHRlYWNoaW5nIGdyYW1tYXIsIGVzcGVjaWFsbHkgaW4gTG9qYmFuLCB3aGVyZSBncmFtbWFy IGlzIGJsYWNrLW9yLXdoaXRlLCBidXQgc2VtYW50aWNzIGlzbid0LiBUaGVyZWZvcmUsIEkgZmlu ZCBpdCBuZWNlc3NhcnkgdG8gcmVwZWF0IHRoZSBkaXNjbGFpbWVyIGZyb20gdGhlIGJlZ2lubmlu ZyBvZiB0aGUgdGhpcmQgcGFydCBvZiBXYXZlbGVzc29uc2NvbnRpbnVlZDogVGhlIGZvbGxvd2lu ZyBpcyBub3Qgb2ZmaWNpYWwsIGJ1dCByYXRoZXIgYW4gKGVkdWNhdGVkKSBvcGluaW9uIG9uIHRo ZSBsYW5ndWFnZS4gCisgVGVhY2hpbmcgKGFuZCBsZWFybmluZykgc2VtYW50aWNzIGlzIG11Y2gg bW9yZSB0cmlja3kgdGhhbiB0ZWFjaGluZyBncmFtbWFyLCBlc3BlY2lhbGx5IGluIExvamJhbiwg d2hlcmUgZ3JhbW1hciBpcyBibGFjay1vci13aGl0ZSwgYnV0IHNlbWFudGljcyBpc24ndC4gVGhl cmVmb3JlLCBJIGZpbmQgaXQgbmVjZXNzYXJ5IHRvIHJlcGVhdCB0aGUgZGlzY2xhaW1lciBmcm9t IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRoaXJkIHBhcnQgb2YgV2F2ZWxlc3NvbnNjb250aW51ZWQ6 IFRoZSBmb2xsb3dpbmcgaXMgbm90IG9mZmljaWFsLCBidXQgcmF0aGVyIGFuIChlZHVjYXRlZCkg b3BpbmlvbiBvbiB0aGUgbGFuZ3VhZ2UuCgotIFdoZXJlIGJhZCBncmFtbWFyIGlzIGVhc3kgdG8g c3BvdCBpbiBMb2piYW4sIGluIGZhY3QgaXQncyB1bmFtYmlndW91c2x5IGNvcnJlY3Qgb3Igbm90 LCBzYXlpbmcgdGhhdCBhIGp1ZnJhIGlzIHNlbWFudGljYWxseSB3cm9uZyBpcyB0aGUgc2FtZSBh cyBzYXlpbmcgdGhhdCB0aGUgc3BlYWtlciBpcyB1c2luZyBMb2piYW4gdG8gdGhpbmsgd3Jvbmds eSBhYm91dCB0aGUgd29ybGQuIEl0J3Mgbm90IHNheWluZyAmcXVvdDtZb3UgY2FuJ3Qgc2F5IFgm cXVvdDsgYXMgbXVjaCBhcyAmcXVvdDtZb3UgY2FuJ3QgaW50ZXJwcmV0IFggaW4gdGhpcyB3YXks IHlvdSBzaG91bGQgaW50ZXJwcmV0IGl0IHRoaXMgd2F5JnF1b3Q7LiBQbGFjaW5nIHRoZXNlIHJl c3RyaWN0aW9ucyBvbiBjb21wb3NpbmcgYW5kIHVuZGVyc3RhbmRpbmcgaXMgYSBzbGlwcGVyeSBz bG9wZSBsZWFkaW5nIHRvIHJlc3RyaWN0aW9ucyBvbiBjcmVhdGl2aXR5LCBhbmQgaW4gdGhlIHdv cnN0IGNhc2UsIHByZXN1cHBvc2luZyBvZiBhIGNlcnRhaW4gbWV0YXBoeXNpY2FsIHZpZXdwb2lu dCBhbmQgZXhjbHVkaW5nIG90aGVycy4KKyBCYWQgZ3JhbW1hciBpcyBlYXN5IHRvIHNwb3QgaW4g TG9qYmFuIC0gaW4gZmFjdCBpdCdzIHVuYW1iaWd1b3VzbHkgY29ycmVjdCBvciBub3QuIEluIGNv bnRyYXN0LCBzYXlpbmcgdGhhdCBhIGp1ZnJhIGlzIHNlbWFudGljYWxseSB3cm9uZyBpcyB0aGUg c2FtZSBhcyBzYXlpbmcgdGhhdCB0aGUgc3BlYWtlciBpcyB1c2luZyBMb2piYW4gdG8gdGhpbmsg d3JvbmdseSBhYm91dCB0aGUgd29ybGQuIEl0J3Mgbm90IHNheWluZyAmcXVvdDtZb3UgY2FuJ3Qg c2F5IFgmcXVvdDsgYXMgbXVjaCBhcyAmcXVvdDtZb3UgY2FuJ3QgaW50ZXJwcmV0IFggaW4gdGhp cyB3YXkuIFlvdSBzaG91bGQgaW50ZXJwcmV0IGl0IHRoaXMgd2F5JnF1b3Q7LiBQbGFjaW5nIHRo ZXNlIHJlc3RyaWN0aW9ucyBvbiBjb21wb3NpbmcgYW5kIHVuZGVyc3RhbmRpbmcgbGFuZ3VhZ2Ug aXMgYSBzbGlwcGVyeSBzbG9wZSBsZWFkaW5nIHRvIHJlc3RyaWN0aW9ucyBvbiBjcmVhdGl2aXR5 LCBhbmQgZXZlbiBwcmVzdXBwb3Npbmcgb2YgY2VydGFpbiBtZXRhcGh5c2ljYWwgdmlld3BvaW50 cyB3aGlsZSBleGNsdWRpbmcgb3RoZXJzLgoKLSBUaGVuIHdoeSBpbmNsdWRlIHNlbWFudGljIHN0 YW5kYXJkcyBpbiBhIHRleHRib29rPyBTaG91bGRuJ3QgYW55IHNwZWFrZXIgYmUgZnJlZSB0byBz YXkgYW55dGhpbmcgYW5kIGFueSBsaXN0ZW5lciBiZSBmcmVlIHRvIGxldCB0aGF0IHNwZWVjaCBt ZWFuIHdoYXRldmVyIHRoZXkgd2FudD88YnIgLz5UaGlzIGlzIGEgbWF0dGVyIG9mIG1lYXN1cmUu IEdpdmVuIHRoYXQgZXh0cmVtZSwgaWYgbm8gc2VtYW50aWMgc3RhbmRhcmRzIHdlcmUgc2V0LCBh bnl0aGluZyBjb3VsZCBtZWFuIGV2ZXJ5dGhpbmcsIGFuZCBhbGwgY29tbXVuaWNhdGlvbiB3b3Vs ZCBiZSBtZWFuaW5nbGVzcy4gSW4gYW55IGxhbmd1YWdlIHdoaWNoIGFpbXMgdG8gZmFjaWxpdGF0 ZSBjb21tdW5pY2F0aW9uLCBvbmUgbXVzdCBiZSBhYmxlIHRvIGJlIGFibGUgdG8gZXhwcmVzcyBv bmVzZWxmIGluIGEgd2F5IHdoaWNoIGNhbiBiZSB0cnVzdGVkIHRvIGJlIGludGVycHJldGVkIGlu IHRoZSBkZXNpcmVkIHdheS4gU2VtYW50aWMgcnVsZXMgb2YgTG9qYmFuIGRvZXMgbm90IGV4aXN0 IGluIG9yZGVyIHRvIHByZXZlbnQgcGVvcGxlIGZyb20gc2F5aW5nIEEuIFRoZSBleGlzdCB0byBw cmV2ZW50IHBlb3BsZSBmcm9tIHNheWluZyBCIGFuZCBoYXZlIHBlb3BsZSB0aGluayB5b3UgbWVh bnQgQS4KKyBUaGVuIHdoeSBpbmNsdWRlIHNlbWFudGljIHN0YW5kYXJkcyBpbiBhIHRleHRib29r PyBTaG91bGRuJ3QgYW55IHNwZWFrZXIgYmUgZnJlZSB0byBzYXkgYW55dGhpbmcsIGFuZCBhbnkg bGlzdGVuZXIgYmUgZnJlZSB0byBsZXQgdGhhdCBzcGVlY2ggbWVhbiB3aGF0ZXZlciB0aGV5IHdh bnQ/PGJyIC8+VGhpcyBpcyBhIG1hdHRlciBvZiBtZWFzdXJlLiBHaXZlbiB0aGF0IGV4dHJlbWUs IHRoYXQgaXMsIGlmIG5vIHNlbWFudGljIHN0YW5kYXJkcyB3ZXJlIHNldCwgZXZlcnl0aGluZyBj b3VsZCBtZWFuIGFueXRoaW5nLCBhbmQgYWxsIGNvbW11bmljYXRpb24gd291bGQgYmUgbWVhbmlu Z2xlc3MuIEluIGFueSBsYW5ndWFnZSB3aGljaCBhaW1zIHRvIGZhY2lsaXRhdGUgY29tbXVuaWNh dGlvbiwgb25lIG11c3QgYmUgYWJsZSB0byBleHByZXNzIG9uZXNlbGYgaW4gc3VjaCBhIHdheSB0 aGF0IG9uZSBjYW4gdHJ1c3QgdGhhdCBvbmVzIG1lc3NhZ2UgaXMgaW50ZXJwcmV0ZWQgaW4gdGhl IGRlc2lyZWQgd2F5LiBTZW1hbnRpYyBydWxlcyBvZiBMb2piYW4gZG8gbm90IGV4aXN0IGluIG9y ZGVyIHRvIHByZXZlbnQgcGVvcGxlIGZyb20gc2F5aW5nIEEuIFRoZXkgZXhpc3QgdG8gcHJldmVu dCBwZW9wbGUgZnJvbSBzYXlpbmcgQiBhbmQgaGF2aW5nIG90aGVycyB0aGluayB0aGV5IG1lYW50 IEEuCgotIFRoaXMgbGVzc29uIGlzIG9uIHR5cGVzLiBUaGUgd29yZCBfX3R5cGVfXywgaW5mb3Jt YWxseSB0cmFuc2xhdGVkIHRvICcna2xlc2knJywgaXMgdXNlZCBieSBMb2piYW5pc3RzIHRvIGRl c2NyaWJlIHRoZSBleGlzdGVuc2lhbCBuYXR1cmUgb2YgdGhlIHRoaW5ncyBzdW10aSBkZXNjcmli ZS4gVGhpcyBuYXR1cmUgaXMsIG11c3QgYmUsIHRoZSBzYW1lIGFzIHRoZSBuYXR1cmUgb2YgdGhl IHRoaW5ncyBkZXNjcmliZWQgYnkgb3RoZXIgbGFuZ3VhZ2VzIHN1Y2ggYXMgRW5nbGlzaC4gSG93 ZXZlciwgaW4gTG9qYmFuLCB0aGUgZGlmZmVyZW50IHdheXMgb2YgbWFraW5nIHN1bXRpIGRlbm90 ZXMgd2hpY2ggdHlwZSBhIHN1bXRpIGJlbG9uZ3MgdG8sIHNvIHdoaWxlIHRoZSBleGFjdCBuYXR1 cmUgb2Ygc3VtdGkgY2FuIGJlIGlnbm9yZWQgaW4gRW5nbGlzaCwgTG9qYmFuaXN0cyBoYXZlIHRv IGRlYWwgd2l0aCB0aGVtLgorIFRoaXMgbGVzc29uIGlzIG9uIHR5cGVzLiBUaGUgd29yZCBfX3R5 cGVfXywgaW5mb3JtYWxseSB0cmFuc2xhdGVkIHRvICcna2xlc2knJywgaXMgdXNlZCBieSBMb2pi YW5pc3RzIHRvIGRlc2NyaWJlIHRoZSBleGlzdGVudGlhbCBuYXR1cmUgb2YgdGhlIHRoaW5ncyBz dW10aSBkZXNjcmliZS4gVGhpcyBuYXR1cmUgaXMsIGFuZCBtdXN0IGJlLCB0aGUgc2FtZSBhcyB0 aGUgbmF0dXJlIG9mIHRoZSB0aGluZ3MgZGVzY3JpYmVkIGJ5IG90aGVyIGxhbmd1YWdlcyBzdWNo IGFzIEVuZ2xpc2guIEhvd2V2ZXIsIGluIExvamJhbiwgdGhlIGRpZmZlcmVudCB3YXlzIG9mIG1h a2luZyBzdW10aSBkZW5vdGUgd2hpY2ggdHlwZSBhIHN1bXRpIGJlbG9uZ3MgdG8sIHNvIHdoaWxl IHRoZSBleGFjdCBuYXR1cmVzIG9mIHN1bXRpIGNhbiBiZSBpZ25vcmVkIGluIEVuZ2xpc2gsIExv amJhbmlzdHMgaGF2ZSB0byBkZWFsIHdpdGggdGhlbS4KCi0gV2hlbiBzcGVha2luZyBvZiB0eXBl cywgTG9qYmFuaXN0cyBvZnRlbiBtZW50aW9uIHdoYXQgdHlwZSBhIHN1bXRpIF9fcmVhbGx5IGlz X18sIGJ1dCB3aGVuIHN0YXJ0aW5nIGZyb20gdGhlIHRvcCwgd2UgaGF2ZSB0byByZW1lbWJlciB0 aGF0IHRoaXMgaXMgbm90IHBoaWxvc29waGljYWxseSB3ZWxsIGdyb3VuZGVkLiBUYWtpbmcgYSBt YXRlcmlhbGlzdGljIHZpZXdwb2ludCwgdGhlIG5hdHVyYWwgd29ybGQgb2YgcGFydGljbGVzIGFu ZCB3YXZlcyBkb2VzIG5vdCBjb3JyZXNwb25kIHdlbGwgd2l0aCBodW1hbiB1bmRlcnN0YW5kaW5n IG9mIHNheSwgaGF0cmVkLCB3aGljaCBhcmUgbm90IGRldGVybWluZWQgYnkgYW55IHNwZWNpZmlj IHBhcnRpY2xlcywgbm90IGFueSBzcGVjaWZpYyBicmFpbiBhY3Rpdml0eSwgYnV0IGEgcHVyZWx5 IGFic3RyYWN0IGNvbmNlcHQuIFNpbWlsYXJseSwgaW4gYW4gZXh0cmVtZSBpbmR1Y3Rpb25pc3Qg dmlld3BvaW50LCBzdWNoIGFzIHRoYXQgdGFrZW4gYnkgSHVtZSwgYWxsIHdlIGh1bWFucyBleHBl cmllbmNlIGFyZSBzdWJqZWN0aXZlIGltcHJlc3Npb25zIG92ZXIgdGltZSAtIGEgbG9uZyBzdHJp bmcgb2YgZXZlbnRzLCBvciwgc29tZSBwZW9wbGUgYXJndXJlLCBldmVuIGEgYnVuY2ggb2YgcXVh bGlhIChUaGlzIGlzIF9fZ3JlZW5fXy4gVGhpcyBpcyBfX2NyaXNweV9fLiBUaGlzIGlzIF9fcm91 bmRfXy4gVGhpcyBpcyBfX3Rhc3R5X18uID0mZ3Q7ICZxdW90O1RoaXMgaXMgYW4gYXBwbGUmcXVv dDsuKSBUaGlzLCBob3dldmVyLCBkb2VzIG5vdCBjb3JyZXNwb25kIHdlbGwgdG8gaHVtYW4gdW5k ZXJzdGFuZGluZyBvZiBzYXksIGEgY2F0LCB3aG9zZSBleGlzdGFuY2UgbXVzdCBiZSBwcmVzdW1l ZCB0byBjb250aW51ZSBldmVuIHdoZW4gaXQgaW52b2tlcyBubyBxdWFsaWEgaW4gaHVtYW5zLCBh bmQgd2hvc2UgcXVhbGlhIHZhcnkgYW1vbmcgZGlmZmVyZW50IGNhdHMsIGFuZCB3aG9zZSBkZWF0 aCBzbW9vdGhseSBzdHJpcHMgaXQgb2YgaXRzIGNhdGxpa2UgcXVhbGlhLiAKKyBXaGVuIHNwZWFr aW5nIG9mIHR5cGVzLCBMb2piYW5pc3RzIG9mdGVuIG1lbnRpb24gd2hhdCB0eXBlIGEgc3VtdGkg X19yZWFsbHkgaXNfXy4gV2hlbiBiZWdpbm5pbmcgZnJvbSB0aGUgYmVnaW5uaW5nLCB3ZSBoYXZl IHRvIHJlbWVtYmVyIHRoYXQgdGhpcyBjZXJ0YWludHkgaXMgbm90IHBoaWxvc29waGljYWxseSB3 ZWxsIGdyb3VuZGVkLiBUYWtpbmcgYSBtYXRlcmlhbGlzdGljIHZpZXdwb2ludCwgdGhlIG5hdHVy YWwgd29ybGQgb2YgcGFydGljbGVzIGFuZCB3YXZlcyBkb2VzIG5vdCBjb3JyZXNwb25kIHdlbGwg d2l0aCBodW1hbiB1bmRlcnN0YW5kaW5nIG9mIHNheSwgaGF0cmVkLCB3aGljaCBpcyBub3QgZGVm aW5lZCBieSBhbnkgc3BlY2lmaWMgcGFydGljbGVzLCBub3IgYW55IHNwZWNpZmljIGJyYWluIGFj dGl2aXR5LiBJdCBpcyBhIHB1cmVseSBhYnN0cmFjdCBjb25jZXB0LiBTaW1pbGFybHksIGluIGFu IGV4dHJlbWUgaW5kdWN0aW9uaXN0IHZpZXdwb2ludCwgc3VjaCBhcyB0aGF0IHRha2VuIGJ5IEh1 bWUsIGFsbCB3ZSBodW1hbnMgZXhwZXJpZW5jZSBhcmUgc3ViamVjdGl2ZSBpbXByZXNzaW9ucyBv dmVyIHRpbWUgLSBhIGxvbmcgc3RyaW5nIG9mIGV2ZW50cywgb3IsIHNvbWUgcGVvcGxlIGFyZ3Vl LCBhIGJ1bmNoIG9mIHF1YWxpYSAoVGhpcyBpcyBfX2dyZWVuX18uIFRoaXMgaXMgX19jcmlzcHlf Xy4gVGhpcyBpcyBfX3JvdW5kX18uIFRoaXMgaXMgX190YXN0eV9fLiA9Jmd0OyAmcXVvdDtUaGlz IGlzIGFuIGFwcGxlJnF1b3Q7LikgVGhpcyB2aWV3cG9pbnQsIGhvd2V2ZXIsIGRvZXMgbm90IGNv cnJlc3BvbmQgd2VsbCB0byBodW1hbiB1bmRlcnN0YW5kaW5nIG9mIHNheSwgYSBjYXQsIHdob3Nl IGV4aXN0ZW5jZSBtdXN0IGJlIHByZXN1bWVkIHRvIGNvbnRpbnVlIGV2ZW4gd2hlbiBpdCBpbnZv a2VzIG5vIHF1YWxpYSBpbiBodW1hbnMsIHdob3NlIHF1YWxpYSB2YXJ5IGFtb25nIGRpZmZlcmVu dCBjYXRzLCBhbmQgd2hvc2UgZGVhdGggc21vb3RobHkgc3RyaXBzIGl0IG9mIGl0cyBjYXRsaWtl IHF1YWxpYS4KCi0gSW4gb3RoZXIgd29yZHMsIHdoaWxlIG9uZSBjYW4gdGFrZSBwaGlsb3NvcGhp Y2FsbHkgY29uc2lzdGVudCB3b3JsZHZpZXdzIHdoZXJlIG9iamVjdHMgYW5kIGNvbmNlcHRzIGRv bid0IGV4aXN0LCBzdWNoIHdvcmxkdmlld3MgYXJlIHVuZnJ1aXRmdWwgZm9yIGNvbmR1Y3Rpbmcg aHVtYW4gYWZmYWlyczogSW4gb3VyIGxpdmVzLCB3ZSBzaW1wbHkgbmVlZCB0byByZWZlciB0byBv YmplY3RzLCBhbmQgcHJldGVuZCB0aGF0IHRoZXkgYWN0dWFsbHkgZXhpc3QgYXMgc3VjaC4gT25l IGZhbW91cyBzdG9yeSB0ZWxscyBvZiBhIHBoaWxvc29waGVyLCBTYW11ZWwgSm9obnNvbiwgd2hv LCBmcnVzdHJhdGVkIGFib3V0IHRoZSBwaGlsb3NvcGhpY2FsIHNvdW5kbmVzcyBhbmQgdW4tcmVm dXRhYmlsaXR5IG9mIGEgZmVsbG93IHBoaWxvc29waGVyJ3MgYmVsaWVmIHRoYXQgdGhlIHBoeXNp Y2FsIHdvcmxkIGRvZXMgbm90IGV4aXN0LCBmdXJpb3VzbHkga2lja3MgYSByb2NrIHllbGxpbmcg JnF1b3Q7SSByZWZ1dGUgaXQgX190aHVzIV9fJnF1b3Q7CisgSW4gb3RoZXIgd29yZHMsIHdoaWxl IG9uZSBjYW4gdGFrZSBwaGlsb3NvcGhpY2FsbHkgY29uc2lzdGVudCB3b3JsZHZpZXdzIHdoZXJl IG9iamVjdHMgYW5kIGNvbmNlcHRzIGRvbid0IGV4aXN0LCBzdWNoIHdvcmxkIHZpZXdzIGFyZSB1 bmZydWl0ZnVsIGZvciBjb25kdWN0aW5nIGh1bWFuIGFmZmFpcnM6IEluIG91ciBsaXZlcywgd2Ug c2ltcGx5IG5lZWQgdG8gcmVmZXIgdG8gb2JqZWN0cywgYW5kIHByZXRlbmQgdGhhdCB0aGV5IGFj dHVhbGx5IGV4aXN0IGFzIHN1Y2guIE9uZSBmYW1vdXMgc3RvcnkgdGVsbHMgb2YgYSBwaGlsb3Nv cGhlciwgU2FtdWVsIEpvaG5zb24sIHdobywgZnJ1c3RyYXRlZCBhYm91dCB0aGUgcGhpbG9zb3Bo aWNhbCBzb3VuZG5lc3MgYW5kIHVuLXJlZnV0YWJpbGl0eSBvZiBhIGZlbGxvdyBwaGlsb3NvcGhl cidzIGJlbGllZiB0aGF0IHRoZSBwaHlzaWNhbCB3b3JsZCBkb2VzIG5vdCBleGlzdCwgZnVyaW91 c2x5IGtpY2tzIGEgcm9jayB5ZWxsaW5nLCAmcXVvdDtJIHJlZnV0ZSBpdCBfX3RodXMhX18mcXVv dDsKCi0gSW4gTG9qYmFuLCBtb3N0IHN1bXRpIGFyZSBtYWRlIGZyb20gc2VsYnJpIG9uZSB3YXkg b3IgdGhlIG90aGVyLCB3aGljaCBtZWFucyB0aGF0IGF0IHRoZSBjb3JlIG9mIG1vc3Qgc3VtdGkg bGllcyBhIHNlbGJyaSwgYW4gYWN0aW9uLCBzb21ldGhpbmcgd2hpY2ggc29tZXRoaW5nIF9fZG9l c19fLiBUaGUgU3VuJ3Mgbm90IHVzdWFsbHkgcmVmZXJyZWQgdG8gYXMge2xhIHNvbHJpfSwgJnF1 b3Q7VGhlIFN1biZxdW90OywgYnV0IG9mdGVuIHtsbyBzb2xyaX0sICZxdW90O1NvbWV0aGluZyB3 aGljaCBpcyBzdW5uaW5nJnF1b3Q7LiBUaGVyZSBhcmUgbWFueSBjb25mdXNpbmcgcGhpbG9zb3Bo aWNhbCBpbXBsaWNhdGlvbnMgb2YgdGhpczogQXMgc3RhdGVkIGJlZm9yZSwgaXQncyBzaGFreSBh dCBiZXN0IHdoYXQgaXQgbWVhbnMgJnF1b3Q7dG8gY2F0JnF1b3Q7IGFuZCB3aGVuIHNvbWV0aGlu ZyAmcXVvdDtzdG9wcyBjYXR0aW5nJnF1b3Q7LiBBIGZpY3Rpb25hbCBsYW5ndWFnZSB3aXRoIHNp bWlsYXIgcHJvcGVydGllcyBpcyBkZXNjcmliZXMgaW4gYSBuZWF0IHNob3J0IHN0b3J5LCAmcXVv dDtUbG4sIFVxYmFyLCBPcmJpcyBUZXJ0aXVzJnF1b3Q7ICh3aGVyZSAmcXVvdDtUaGUgb24gcm9z ZSBvdmVyIHRoZSBvY2VhbiZxdW90OyBpcyBwaHJhc2VkIHVzaW5nIHNpbWlsYXIgdmVyYi9hZHZl cmIgZGVyaXZlZCBub3VuczogJnF1b3Q7VXB3YXJkIGJlaGluZCB0aGUgb25zdHJlYW1pbmcgaXQg bW9vbmVkJnF1b3Q7KS4gSW4gdGhhdCBzaG9ydCBzdG9yeSwgdGhlIGxhbmd1YWdlIGlzIGFib3V0 IHRvIGxlYWQgdG8gdGhlIGNvbGxhcHNlIG9mIHNvY2lldHkgYmVjYXVzZSB0aGUgd29ybGQgdmll dyB3aGljaCBzdWNoIGEgbGFuZ3VhZ2UgaW1wbGllcyBpcyB1bmZpdCB0byBkZWFsaW5nIHdpdGgg dGhlIHJlYWxpdGllcyBvZiBFYXJ0aC4KKyBJbiBMb2piYW4sIG1vc3Qgc3VtdGkgYXJlIG1hZGUg ZnJvbSBzZWxicmkgb25lIHdheSBvciB0aGUgb3RoZXIsIHdoaWNoIG1lYW5zIHRoYXQgYXQgdGhl IGNvcmUgb2YgbW9zdCBzdW10aSBsaWVzIGEgc2VsYnJpLCBhbiBhY3Rpb24sIHNvbWV0aGluZyB3 aGljaCBzb21ldGhpbmcgX19kb2VzX18uIFRoZSBTdW4gaXMgbm90IHVzdWFsbHkgcmVmZXJyZWQg dG8gYXMge2xhIHNvbHJpfSwgJnF1b3Q7VGhlIFN1biZxdW90OywgYnV0IG9mdGVuIHtsbyBzb2xy aX0sICZxdW90O1NvbWV0aGluZyB3aGljaCBpcyBiZWluZyBhIHN1biZxdW90Oy4gVGhlcmUgYXJl IG1hbnkgY29uZnVzaW5nIHBoaWxvc29waGljYWwgaW1wbGljYXRpb25zIG9mIHRoaXM6IEFzIHN0 YXRlZCBiZWZvcmUsIGl0J3MgaGF6eSBhdCBiZXN0IHdoYXQgaXQgbWVhbnMgJnF1b3Q7dG8gY2F0 JnF1b3Q7IGFuZCB3aGVuIHNvbWV0aGluZyBiZWdpbnMgY2F0dGluZyBvciAmcXVvdDtzdG9wcyBj YXR0aW5nJnF1b3Q7LiBBIGZpY3Rpb25hbCBsYW5ndWFnZSB3aXRoIHNpbWlsYXIgcHJvcGVydGll cyBpcyBkZXNjcmliZWQgaW4gYSBuZWF0IHNob3J0IHN0b3J5LCAmcXVvdDtUbG4sIFVxYmFyLCBP cmJpcyBUZXJ0aXVzJnF1b3Q7ICh3aGVyZSAmcXVvdDtUaGUgTW9vbiByb3NlIG92ZXIgdGhlIG9j ZWFuJnF1b3Q7IGlzIHBocmFzZWQgdXNpbmcgc2ltaWxhciB2ZXJiL2FkdmVyYi1kZXJpdmVkIG5v dW5zOiAmcXVvdDtVcHdhcmQgYmVoaW5kIHRoZSBvbnN0cmVhbWluZyBpdCBtb29uZWQmcXVvdDsp LiBJbiB0aGF0IHNob3J0IHN0b3J5LCB0aGUgbGFuZ3VhZ2UgaXMgYWJvdXQgdG8gbGVhZCB0byB0 aGUgY29sbGFwc2Ugb2Ygc29jaWV0eSBiZWNhdXNlIHRoZSB3b3JsZHZpZXcgd2hpY2ggc3VjaCBh IGxhbmd1YWdlIGltcGxpZXMgaXMgdW5maXQgZm9yIGRlYWxpbmcgd2l0aCB0aGUgcmVhbGl0aWVz IG9mIEVhcnRoLgoKLSBUaGUgdGFrZSBob21lIHBvaW50IG9mIGFsbCB0aGlzIGlzOiBQcmVjaXNl IGRlZmluaXRpb25zIG9mIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2Ygc3VtdGkgYXJlIGltcG9zc2li bGUsIGJlY2F1c2UgdGhlc2UgY2NhdGVnb3JpZXMgZG8gbm90IGNvcnJlc3BvbmQgdG8gdGhlIHJl YWwgd29ybGQsIGJ1dCB3ZSBuZWVkIHRoZXNlIGNhdGVnb3JpZXMuPGJyIC8+VGhlcmUgbWF5IHBv c3NpYmx5IGJlIGFuIGluZmluaXRlIGFtb3VudHMgb2YgdHlwZXMsIGJ1dCBoZXJlIEknbGwgZ28g dGhyb3VnaCB0aGUgb25lcyB3aGljaCBhcmUgZGVhbHQgd2l0aCBpbiBMb2piYW46CisgVGhlIHRh a2UgaG9tZSBwb2ludCBvZiBhbGwgdGhpcyBpczogUHJlY2lzZSBkZWZpbml0aW9ucyBvZiB0aGUg ZGlmZmVyZW50IHR5cGVzIG9mIHN1bXRpIGFyZSBpbXBvc3NpYmxlLCBiZWNhdXNlIHRoZXNlIGNh dGVnb3JpZXMgZG8gbm90IGNvcnJlc3BvbmQgdG8gdGhlIHJlYWwgd29ybGQuIE5vbmV0aGVsZXNz LCB3ZSBuZWVkIHRoZXNlIGNhdGVnb3JpZXMgd2hlbiBzcGVha2luZy48YnIgLz5UaGVyZSBtYXkg cG9zc2libHkgYmUgYW4gaW5maW5pdGUgYW1vdW50IG9mIHR5cGVzLCBidXQgSSdsbCBnbyB0aHJv dWdoIHRoZSBvbmVzIHdoaWNoIGFyZSBkZWFsdCB3aXRoIG1vc3Qgb2Z0ZW4gaW4gTG9qYmFuOgoK LSBNYXRlcmlhbCBvYmplY3RzIGFyZSBwZXJoYXBzIHRoZSBlYXNpZXN0IHRvIHVuZGVyc3RhbmQs IGV2ZW4gdGhvdWdoIHRoZXkncmUgaGFyZCB0byBkZWZlbmQgcGhpbG9zb3BoaWNhbGx5LiBUaGV5 IGFsd2F5cyBoYXZlIGEgcGxhY2UgaW4gYm90aCB0aW1lIGFuZCBzcGFjZSwgYnV0IHRoZXkncmUg Y29uc2lkZXJlZCBiZWluZyBhIGNvbnN0YW50IGV4aXN0aW5nIHRocm91Z2ggdGltZS4gVGhhdCBp cywgb2JqZWN0cyBhcmUgbm90IGNvbnNpZGVyZWQgdGVtcG9yYWxseTogQSBiYW5hbmEgY2Fycmll cyB3aXRoIGl0IGl0cyB1bmNoYW5naW5nIGJhbmFuYS1uZXNzIGV2ZW4gYXMgaXQgYWdlcywgdW50 aWwgaXQgYmVnaW5zIGJyZWFraW5nIGRvd24gYW5kIHN0b3AgYmVpbmcgYSBiYW5hbmEgYXQgYWxs LiBJZiBvbmUgY291bGQgZnJlZXplIHRpbWUsIGFsbCBiYW5hbmFzIHdvdWxkIHN0YXkgYmFuYW5h cyBkdXJpbmcgdGhhdCBmcm96ZW4gdGltZS4KKyBNYXRlcmlhbCBvYmplY3RzIGFyZSBwZXJoYXBz IHRoZSBlYXNpZXN0IHRvIHVuZGVyc3RhbmQsIGV2ZW4gdGhvdWdoIHRoZXkncmUgaGFyZCB0byBk ZWZlbmQgcGhpbG9zb3BoaWNhbGx5LiBUaGV5IGFsd2F5cyBoYXZlIGEgcGxhY2UgaW4gYm90aCB0 aW1lIGFuZCBzcGFjZSwgYnV0IHRoZXkncmUgY29uc2lkZXJlZCB0byBiZSBhIGNvbnN0YW50IGV4 aXN0aW5nIHRocm91Z2ggdGltZS4gVGhhdCBpcywgb2JqZWN0cyBhcmUgbm90IGNvbnNpZGVyZWQg dGVtcG9yYWxseTogQSBiYW5hbmEgY2FycmllcyB3aXRoIGl0IGl0cyB1bmNoYW5naW5nIGJhbmFu YS1uZXNzIGV2ZW4gYXMgaXQgYWdlcywgdW50aWwgaXQgYmVnaW5zIGJyZWFraW5nIGRvd24gYW5k IHN0b3AgYmVpbmcgYSBiYW5hbmEgYXQgYWxsLiBJZiBvbmUgY291bGQgZnJlZXplIHRpbWUgZm9y IGFsbCBiYW5hbmFzLCB0aGV5IHdvdWxkIHN0YXkgYmFuYW5hcyBkdXJpbmcgdGhhdCBmcm96ZW4g dGltZS4KCi0gRXZlbnRzIGFyZSwgbGlrZSBvYmplY3RzLCBwbGFjZXMgaW4gc3BhY2UgYW5kIHRp bWUsIGJ1dCB0aGVzZSBhcmUgY29uc2lkZXJlZCB1bmZvbGRpbmcgb3ZlciB0aW1lOiBUaGUgdGVt cG9yYWwgYXNwZWN0IGlzIGFzIGltcG9ydGFudCBhcyB0aGUgc3BhY2lhbC4gQSBiYW5hbmEgY2Fu IGJlIGNvbnNpZGVyZWQgYW4gZXZlbnQsIGJ1dCBpbiB0aGF0IGNhc2UsIHRoZSBldmVudCBvZiBi ZWluZyBhIGJhbmFuYSBpcyByZWFsbHkgY29tcG9zZWQgb2YgdGhlIGNoYW5nZXMgdGhlIGJhbmFu YSB1bmRlcmdvZXMgb3ZlciB0aW1lLCB3aGVyZWFzIHdoYXQgbWFrZXMgYSBiYW5hbmEgYW4gb2Jq ZWN0IGlzIGFsbCB0aGF0LCB3aGljaCBkb2Vzbid0IGNoYW5nZS4gRnJlZXppbmcgdGltZSB3b3Vs ZCBhbHNvIGZyZWV6ZSB0aGUgZXZlbnQgb2YgYmVpbmcgYSBiYW5hbmEuCisgRXZlbnRzIGFyZSwg bGlrZSBvYmplY3RzLCBwbGFjZXMgaW4gc3BhY2UgYW5kIHRpbWUsIGJ1dCBldmVudHMgYXJlIGNv bnNpZGVyZWQgYXMgdW5mb2xkaW5nIG92ZXIgdGltZTogVGhlIHRlbXBvcmFsIGFzcGVjdCBpcyBh cyBpbXBvcnRhbnQgYXMgdGhlIHNwYWNpYWwuIEEgYmFuYW5hIGNhbiBiZSBjb25zaWRlcmVkIGFu IGV2ZW50LCBidXQgaW4gdGhhdCBjYXNlLCB0aGUgZXZlbnQgb2YgYmVpbmcgYSBiYW5hbmEgaXMg Y29tcG9zZWQgb2YgdGhlIGNoYW5nZXMgdGhlIGJhbmFuYSB1bmRlcmdvZXMgb3ZlciB0aW1lLCB3 aGVyZWFzIHdoYXQgbWFrZXMgYSBiYW5hbmEgYW4gb2JqZWN0IGlzIGFsbCB0aGF0IHdoaWNoIGRv ZXNuJ3QgY2hhbmdlLiBGcmVlemluZyB0aW1lIHdvdWxkIGFsc28gZnJlZXplIHRoZSBldmVudCBv ZiBiZWluZyBhIGJhbmFuYS4KCi0gRnVuY3Rpb25zIGFyZSBhIHRlcm0gdXNlZCBieSBhIGZldyBM b2piYW5pc3RzIHRvIGRlc2NyaWJlIGEgZ3JvdXAgb2YgdHlwZXMuIEFsbCBmdW5jdGlvbnMgYXJl IGFic3RyYWN0IGNvbmNlcHRzIGFuZCBhcyBzdWNoIGRvZXNuJ3QgcmVhbGx5IGV4aXN0IGluIHRo ZSByZWFsIHdvcmxkIG9uIHRoZWlyIG93bi4gSG93IHRoZSBzZW1hbnRpY3Mgb2YgZnVuY3Rpb25z IGludGVycGxheXMgd2l0aCB0aGVpciBncmFtbWFyIGlzIHRoZSBzdWJqZWN0IG9mIGxlc3NvbiB0 aGlydHksIGhlcmUsIHdlIGZvY3VzIG9uIHRoZWlyIHNlbWFudGljcyBhbG9uZS4gVGhlcmUgYXJl IGEgZmV3IHR5cGVzIG9mIGZ1bmN0aW9uczoKKyBGdW5jdGlvbnMgYXJlIGEgdGVybSB1c2VkIGJ5 IGEgZmV3IExvamJhbmlzdHMgdG8gZGVzY3JpYmUgYSBncm91cCBvZiB0eXBlcy4gQWxsIGZ1bmN0 aW9ucyBhcmUgYWJzdHJhY3QgY29uY2VwdHMgYW5kIGFzIHN1Y2ggZG9uJ3QgcmVhbGx5IGV4aXN0 IGluIHRoZSByZWFsIHdvcmxkIG9uIHRoZWlyIG93bi4gVGhlIG51dHMgYW5kIGJvbHQgb2YgZnVu Y3Rpb25zIGlzIHRoZSBzdWJqZWN0IG9mIGxlc3NvbiB0aGlydHk7IGhlcmUsIHdlIGZvY3VzIG9u IHRoZWlyIHNlbWFudGljcyBhbG9uZS4gVGhlcmUgYXJlIGEgZmV3IHR5cGVzIG9mIGZ1bmN0aW9u czoKCi0gU2VsYnJpIGFyZSBzb21ldGhpbmcgeW91J3JlIGFscmVhZHkgd2VsbCBmYW1pbGlhciB3 aXRoLiBJdCBkZXNjcmliZXMgYW4gYWN0IG9mIGRvaW5nIG9yIGJlaW5nIGluIGl0c2VsZi4gJydj cmlubycnIHVuZGVyc3Rvb2QgYXMgYSBzZWxicmkgCW1lYW5zICZxdW90O2JlaW5nIGdyZWVuJnF1 b3Q7LCAnJ2RhcnhpJycgYXMgYSBzZWxicmkgbWVhbnMgJnF1b3Q7dG8gaGl0JnF1b3Q7LiBBIHNl bGJyaSBpcyBkZXZvaWQgb2Ygd2hvJ3MgZG9pbmcgb3IgYmVpbmcgdGhhdCBzZWxicmksIGFuZCBh cyBzdWNoLCB0aGV5J3JlIGRpdm9yY2VkIGZyb20gYW55IHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2Yg YmVpbmcgZ3JlZW4gb3IgaGl0dGluZywgYW5kIGNhbiBhcyBzdWNoIGJlIHVuZGVyc3Rvb2QgYXMg YSBraW5kIG9mIGdlbmVyYWxpemVkIGV2ZW50cy4gVGhleSdyZSB1c2VkIGZvciBzZW50ZW5jZXMg d2hlcmUgbm8gcGFydGljdWxhciBpbnN0YW5jZSBvZiB0aGF0IHNlbGJyaSBiZWluZyBhcHBsaWVz IGNvbWVzIHRvIG1pbmQuIEZvciBpbnN0YW5jZSwgaWYgSSdtIGxvb2tpbmcgZm9yd2FyZCB0byBt eSB3ZWRkaW5nIG5leHQgd2VkbmVzZGF5LCBJJ20gdGhpbmtpbmcgYWJvdXQgc29tZSBldmVudCBw bGFjZWQgaW4gc3BhY2UgYW5kIHRpbWUgKGV2ZW4gaWYgdGhlIHdlZGRpbmcgbmV2ZXIgYWN0dWFs bHkgdGFrZXMgcGxhY2UgZm9yIHNvbWUgc2FkIHJlYXNvbiksIHdoZXJlYXMgaWYgSSdtIHNheWlu ZyB0aGF0IEknZCBsaWtlIHRvIGJlY29tZSBtYXJyaWVkIG9uZSBkYXksIEkgZGVzaXJlIHRoZSBh Y3Qgb2YgbWFycmlhZ2UsIGFuZCB0aHVzIEkgZGVzaXJlIHRoZSBzZWxicmksIG9yIHJhdGhlciwg dGhhdCB0aGUgc2VsYnJpIGJlIGFwcGxpZWQgdG8gbWUuCisgU2VsYnJpIGFyZSBzb21ldGhpbmcg eW91J3JlIGFscmVhZHkgd2VsbCBmYW1pbGlhciB3aXRoLiBJdCBkZXNjcmliZXMgYW4gYWN0IG9m IGRvaW5nIG9yIGJlaW5nLiAnJ2NyaW5vJycgdW5kZXJzdG9vZCBhcyBhIHNlbGJyaSBtZWFucyAm cXVvdDtiZWluZyBncmVlbiZxdW90OywgJydkYXJ4aScnIG1lYW5zICZxdW90O3RvIGhpdCZxdW90 Oy4gQSBzZWxicmkgb24gaXRzIG93biBpcyBkZXZvaWQgb2YgdGhlIHN1bXRpIHdobydzIGRvaW5n IG9yIGJlaW5nIHRoYXQgc2VsYnJpLiBBcyBzdWNoLCB0aGV5J3JlIGRpdm9yY2VkIGZyb20gYW55 IHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2YgYmVpbmcgZ3JlZW4gb3IgaGl0dGluZywgYW5kIGNhbiB0 aGVyZWZvcmUgYmUgdW5kZXJzdG9vZCBhcyBhIGtpbmQgb2YgZ2VuZXJhbGl6ZWQgZXZlbnRzLiBU aGV5J3JlIHVzZWQgZm9yIHNlbnRlbmNlcyB3aGVyZSBubyBwYXJ0aWN1bGFyIGluc3RhbmNlIG9m IHRoYXQgc2VsYnJpIGJlaW5nIGFwcGxpZWQgY29tZXMgdG8gbWluZC4gRm9yIGluc3RhbmNlLCBp ZiBJJ20gbG9va2luZyBmb3J3YXJkIHRvIG15IHdlZGRpbmcgbmV4dCBXZWRuZXNkYXksIEknbSB0 aGlua2luZyBhYm91dCBzb21lIGV2ZW50IHBsYWNlZCBpbiBzcGFjZSBhbmQgdGltZSAoZXZlbiBp ZiB0aGUgd2VkZGluZyBuZXZlciBhY3R1YWxseSB0YWtlcyBwbGFjZSBmb3Igc29tZSBzYWQgcmVh c29uKSwgd2hlcmVhcyBpZiBJJ20gc2F5aW5nIHRoYXQgSSdkIGxpa2UgdG8gYmVjb21lIG1hcnJp ZWQgb25lIGRheSwgSSBkZXNpcmUgdGhlIGFjdCBvZiBtYXJyaWFnZSwgYW5kIHRodXMgSSBkZXNp cmUgdGhlIHNlbGJyaSwgb3IgcmF0aGVyLCB0aGF0IHRoZSBzZWxicmkgYmUgYXBwbGllZCB0byBt ZS4KCi0gQW1vdW50cyBoYXZlIHRoZSBzYW1lIGdyYW1tYXRpY2FsIHByb3BlcnRpZXMgYXMgc2Vs YnJpLCBhcyB5b3UnbGwgc2VlIGluIHR3byBsZXNzb25zLiBTZW1hbnRpY2FsbHksIGhvd2V2ZXIs IHRoZXkncmUgZGlzdGluY3QuIEFuIGFtb3VudCBpcyBfX2hvdyBtdWNoIHNvbWV0aGluZyBmaXRz IGEgc2VsYnJpX18sIHdoaWNoIGlzIHNvbWV0aGluZyBjb21wbGV0ZWx5IGRpZmZlcmVudCBmcm9t IHRoZSBzZWxicmkgaXRzZWxmLiBBbiBhbW91bnQgaXMgc29tZSBraW5kIG9mIG51bWJlciwgb3Ig Y2FuIGJlIHJlcHJlc2VudGVkIGJ5IHNvbWUgbnVtYmVyLCBleGFjdCBvciBpbmV4YWN0LCBubyBt YXR0ZXIgd2hldGhlciB3aGF0IGlzIHF1YW50aWZpZWQgaXMgcHJhY3RpY2FsbHkgbWVhc3VyYWJs ZS4gPGJyIC8+VGhlcmUgaXMgc29tZSBkaXNhZ3JlZW1lbnQgYWJvdXQgd2hldGhlciBpdCdzIGNv cnJlY3QgdG8gdXNlIG5pIHRvIHF1YW50aWZ5IHNvbWV0aGluZyB3aGljaCBpcyB1bm1lYXN1cmFi bGUuIFRodXMsIHRoZSBhbW91bnQgb2YgbXkgZ3JlZW5uZXNzIGlzIGNlcnRhaW5seSB2YWxpZCwg c2luY2UgdGhhdCBjb3VsZCBiZSBtZWFzdXJlZCBieSBzYXksIGEgZGlnaXRhbCBjYW1lcmEsIGJ1 dCBzcGVha2luZyBhYm91dCB0aGUgYW1vdW50IG9mIG1lIGJlaW5nIEJvYidzIGZyaWVuZCBtYXkg bm90IGJlIGFjY2VwdGVkIG1ldGFwaHlzaWNhbGx5LiBBIGdyZWF0IGV4YW1wbGUgd2hpY2ggdW5k ZXJzY29yZXMgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhbW91bnRzIGFuZCBzZWxicmkgYXBwbGll ZCB0byBzdW10aSBpcyB0aGUgZm9sbG93aW5nOiAmcXVvdDtJIGNoYW5nZSBpbiBibGFja25lc3Mm cXVvdDsuIFdoZW4gJnF1b3Q7YmxhY2tuZXNzJnF1b3Q7IGlzIGNvbnNpZGVyZWQgYSBzZWxicmks IGl0IG1lYW5zIHRoYXQgY2hhbmdlIGZyb20gYmVpbmcgYmxhY2sgdG8gbm90IGJlaW5nIGJsYWNr IG9yIHRoZSBvdGhlciB3YXkgYXJvdW5kLiBXaGVuICZxdW90O2JsYWNrbmVzcyZxdW90OyBpcyBj b25zaWRlcmVkIGFuIGFtb3VudCwgaXQgbWVhbnMgbXkgc2tpbiB0dXJucyBibGFja2VyIG9yIGxl c3MgYmxhY2sgKGFzIGl0IGRvZXMgZHVyaW5nIHRoZSB3aW50ZXIgd2hlbiB0aGVyZSdzIGxpdHRs ZSBzdW5saWdodCkuCisgQW1vdW50cyBoYXZlIGFsbW9zdCB0aGUgc2FtZSBncmFtbWF0aWNhbCBw cm9wZXJ0aWVzIGFzIHNlbGJyaSwgYXMgeW91J2xsIHNlZSBpbiB0d28gbGVzc29ucy4gU2VtYW50 aWNhbGx5LCBob3dldmVyLCB0aGV5J3JlIHF1aXRlIGRpc3RpbmN0LiBBbiBhbW91bnQgaXMgX19o b3cgbXVjaCBzb21ldGhpbmcgZml0cyBhIHNlbGJyaV9fLCB3aGljaCBpcyBzb21ldGhpbmcgY29t cGxldGVseSBkaWZmZXJlbnQgZnJvbSB0aGUgc2VsYnJpIGl0c2VsZi4gQW4gYW1vdW50IGlzIHNv bWUga2luZCBvZiBudW1iZXIsIG9yIGNhbiBiZSByZXByZXNlbnRlZCBieSBzb21lIG51bWJlciwg ZXhhY3Qgb3IgaW5leGFjdCwgbm8gbWF0dGVyIHdoZXRoZXIgd2hhdCBpcyBxdWFudGlmaWVkIGlz IHByYWN0aWNhbGx5IG1lYXN1cmFibGUuPGJyIC8+VGhlcmUgaXMgc29tZSBkaXNhZ3JlZW1lbnQg YWJvdXQgd2hldGhlciBpdCdzIGNvcnJlY3QgdG8gdXNlIGFuIGFtb3VudCBhYnN0cmFjdGlvbiB0 byBxdWFudGlmeSBzb21ldGhpbmcgd2hpY2ggaXMgaW4gcHJpbmNpcGxlIHVubWVhc3VyYWJsZS4g VGh1cywgdGhlIGFtb3VudCBvZiBteSBncmVlbm5lc3MgaXMgY2VydGFpbmx5IHZhbGlkLCBzaW5j ZSB0aGF0IGNvdWxkIGJlIG1lYXN1cmVkIGJ5IHNheSwgYSBkaWdpdGFsIGNhbWVyYSwgYnV0IHNw ZWFraW5nIGFib3V0IHRoZSBhbW91bnQgb2YgbWUgYmVpbmcgQm9iJ3MgZnJpZW5kIG1heSBub3Qg YmUgYWNjZXB0ZWQgcGhpbG9zb3BoaWNhbGx5LiBBIGdyZWF0IGV4YW1wbGUgd2hpY2ggZGVtb25z dHJhdGVzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYW1vdW50cyBhbmQgc2VsYnJpIHdoZW4gYXBw bGllZCB0byBzcGVjaWZpYyBzdW10aSBpcyB0aGUgZm9sbG93aW5nOiAmcXVvdDtJIGNoYW5nZSBp biBibGFja25lc3MmcXVvdDs6IFdoZW4gJnF1b3Q7YmxhY2tuZXNzJnF1b3Q7IGlzIGNvbnNpZGVy ZWQgYSBzZWxicmksIGl0IG1lYW5zIHRoYXQgY2hhbmdlIGZyb20gYmVpbmcgYmxhY2sgdG8gbm90 IGJlaW5nIGJsYWNrIG9yIHRoZSBvdGhlciB3YXkgYXJvdW5kLiBXaGVuICZxdW90O2JsYWNrbmVz cyZxdW90OyBpcyBjb25zaWRlcmVkIGFuIGFtb3VudCwgaXQgbWVhbnMgbXkgc2tpbiB0dXJucyBt b3JlIG9yIGxlc3MgYmxhY2sgKGFzIGl0IGRvZXMgZHVyaW5nIHRoZSB3aW50ZXIgd2hlbiB0aGVy ZSdzIGxpdHRsZSBzdW5saWdodCkuCgotIENvbmNlcHRzIGFyZSBtYXliZSBmdW5jdGlvbnMgYW5k IG1heWJlIHRoZXkncmUgbm90IGRlcGVuZGluZyBvbiB3aG8geW91IGFzay4gQWdhaW4sIGxlc3Nv biB0aGlydHkgZXhwbG9yZXMgdGhlIHJlbGF0aW9uIGJldHdlZW4gY29uY2VwdHMgYW5kIHdoYXQg bWFrZXMgYWJ0cmFjdGlvbnMgYmUgY29uc2lkZXJlZCBmdW5jdGlvbnMuIENvbmNlcHRzIGFyZSwg dW5saWtlIGFtb3VudHMgb3Igc2VsYnJpLCBhbHdheXMgY29tcGxldGVseSBzZXBlcmF0ZWQgZnJv bSBhbnlvbmUgZml0dGluZyB0aGF0IGNvbmNlcHQuIEEgY29uY2VwdCBkb2VzIG5vdCBleGlzdCBp biB0aGUgcmVhbCB3b3JsZC4gQSBjb25jZXB0IGlzIG5vdCBldmVuIHJlcHJlc2VudGVkIGluIHRo ZSByZWFsIHdvcmxkLCBsaWtlIGFtb3VudHMgb3Igc2VsYnJpIGNhbiBiZS4gQSBjb25jZXB0IGV4 aXN0cyBvbmx5IGluIHRoZSBtaW5kcyBvZiBwZW9wbGUsIGFuZCBpcyB1bmRlcnN0b29kIGFzIHRo ZSBtZWFuaW5nIHRoZSB3b3JkLiBUaHVzICZxdW90O2xvdmUmcXVvdDsgdW5kZXJzdG9vZCBhcyBh IGNvbmNlcHQgaXMgdGhlIGlkZWEgb2Ygd2hhdCBsb3ZlIGlzIG5vIG1hdHRlciB3aG8gZG9lcyBp dC4gTWF5YmUgYW4gZXhhbXBsZSBjYW4gZGVtb25zdHJhdGUgdGhlIGRpZmZlcmVuY2UgYmV0d2Vl biBhbW91bnRzLCBzZWxicmkgYW5kIGNvbmNlcHRzOgorIENvbmNlcHRzIGFyZSBtYXliZSBmdW5j dGlvbnMgYW5kIG1heWJlIHRoZXkncmUgbm90LCBkZXBlbmRpbmcgb24gd2hvIHlvdSBhc2suIFRo ZWlyIHBvc2l0aW9uIGFzIG1heWJlLWZ1bmN0aW9ucyBpcyBleHBsYWluZWQgaW4gbGVzc29uIHRo aXJ0eS4gQ29uY2VwdHMsIHVubGlrZSBzZWxicmkgYW5kIGFtb3VudHMsIGNhbm5vdCBiZSBhcHBs aWVkIHRvIHN1bXRpLiBUaGVyZSBjYW4gYmUgbm8gdGFsayBvZiBmaXR0aW5nIGEgY29uY2VwdCwg bGlrZSB0aGVyZSBjYW4gYmUgb2Ygd2hldGhlciBvciBub3QgeW91IGFyZSBmaXR0aW5nIGEgc2Vs YnJpIG9yIG1lYXN1cmluZyB0aGUgYW1vdW50IG9mIGZpdHRpbmcgYSBzZWxicmkuIEEgY29uY2Vw dCBkb2VzIG5vdCBleGlzdCBpbiB0aGUgcmVhbCB3b3JsZC4gQSBjb25jZXB0IGlzIG5vdCBldmVu IHJlcHJlc2VudGVkIGluIHRoZSByZWFsIHdvcmxkLCBsaWtlIGFtb3VudHMgb3Igc2VsYnJpIGNh biBiZSB3aGVuIHRoZXlyZSBhcHBsaWVkIHRvIHN1bXRpLiBBIGNvbmNlcHQsIHNheSB3YXJmYXJl LCBleGlzdHMgb25seSBpbiB0aGUgbWluZHMgb2YgcGVvcGxlLCBhbmQgaXMgdW5kZXJzdG9vZCBh cyB0aGUgbWVhbmluZyBvZiB0aGUgd29yZCB3YXIuIFRodXMgJnF1b3Q7bG92ZSZxdW90OyB1bmRl cnN0b29kIGFzIGEgY29uY2VwdCBpcyB0aGUgaWRlYSBvZiB3aGF0IGxvdmUgaXMsIG5vIG1hdHRl ciB3aG8gbG92ZXMgYW5kIHdobyBpcyBiZWluZyBsb3ZlZC4gPGJyIC8+UGVyaGFwcyBhbiBleGFt cGxlIGNhbiBkZW1vbnN0cmF0ZSB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGFtb3VudHMsIHNlbGJy aSBhbmQgY29uY2VwdHM6CkluICJJIGxpa2UgbG92aW5nIiBhbmQgIkkgbGlrZSBiZWluZyBsb3Zl ZCIsIHdlIGFyZSBzcGVha2luZyBvZiBhIHNlbGJyaS4KLSBJbiB0aGUgc2VudGVuY2UgJnF1b3Q7 SSBsaWtlIGhvdyBtdWNoIEkgbG92ZSZxdW90OywgSSBsaWtlIGFuIGFtb3VudCwgYW5kPGJyIC8+ d2hlbiBzYXlpbmcgJnF1b3Q7SSBsaWtlIGxvdmUmcXVvdDssIEkgcmVmZXIgdG8gdGhlIGNvbmNl cHQgb2YgbG92ZS4KKyBJbiB0aGUgc2VudGVuY2UgJnF1b3Q7SSBsaWtlIGhvdyBtdWNoIEkgbG92 ZSZxdW90OywgSSBsaWtlIGFuIGFtb3VudCwgYW5kIHdoZW4gc2F5aW5nICZxdW90O0kgbGlrZSBs b3ZlJnF1b3Q7LCBJIHJlZmVyIHRvIHRoZSBjb25jZXB0IG9mIGxvdmUuCgotIEJyaWRpIGlzIGEg dHlwZSB3aGljaCB5b3UncmUgYWxzbyBmYW1pbGlhciB3aXRoLiBBIGJyaWRpIGlzIGNlcnRhaW5s eSBub3QgYSBmdW5jdGlvbiwgYnV0IGl0IGRvZXMgYmVhciBzb21lIHJlbGF0aW9uIHRvIGZ1bmN0 aW9ucywgYXMgd2UnbGwgc2VlIGxhdGVyLiBCcmlkaSB0aGVtc2VsdmVzIGFyZSBpbWFnaW5hcnk7 IHRoZXkgZXhpc3Qgbm90IGluIHRoZSByZWFsIHdvcmxkLCBidXQgaW5zaWRlIHRleHRzLCB0aGUg bmV4dCB0eXBlIHRvIGV4cGxhaW4uIEhvd2V2ZXIsIGJyaWRpIGFyZSBjb21wb3NlZCBvZiB3aGlj aGV2ZXIgc3BlY2lmaWMgc3ltYm9scyBhcmUgdXNlZCB0byBleHByZXNzIHRoZSBicmlkaSAtIGJl Y2F1c2UgYnJpZGkgYXJlIGltYWdpbmFyeSwgZGlmZmVyZW50IHNlbnRlbmNlcyBtYXkgZXhwcmVz cyB0aGUgc2FtZSBicmlkaSBpZiB1c2VkIGluIGRpZmZlcmVudCBsYW5ndWFnZXMsIHRoZSB3b3Jk IG9yZGVyIGlzIGNoYW5nZWQsIG9yIGlmIGRpZmZlcmVudCB3b3JkcyBhcmUgdXNlZCB0byByZWZl ciB0byB0aGUgc2FtZSBzdW10aS4gVGh1cyAnJ21pIGRvIHByYW1pJycsICcnbWkgcHJhbWkgZG8n JywgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OywgJydtaSBrbyBwcmFtaScnIGFuZCAnJ2RvIG1pIHBy YW1pJycod2hlbiBzcG9rZW4gYnkgdGhlIHBlcnNvbiwgd2hpY2ggJydkbycnIGluIHRoZSBmaXJz dCBzZW50ZW5jZSByZWZlcnMgdG8pIGFsIGNvbnRhaW4gdGhlIHNhbWUgYnJpZGkuIFRydWUgYnJp ZGkgYWx3YXlzIGhhdmUgdGhlaXIgZnVsbCBwbGFjZSBzdHJ1Y3R1cmUgZmlsbGVkIGJ5IHNvbWV0 aGluZyB3aXRoIGEgbm9uLXplcm8gdmFsdWUuCisgQnJpZGkgaXMgYSB0eXBlIHdoaWNoIHlvdSdy ZSBhbHNvIGZhbWlsaWFyIHdpdGguIEEgYnJpZGkgaXMgY2VydGFpbmx5IG5vdCBhIGZ1bmN0aW9u LCBidXQgaXQgZG9lcyBiZWFyIHNvbWUgcmVsYXRpb24gdG8gZnVuY3Rpb25zLCBhcyB3ZSdsbCBz ZWUgbGF0ZXIuIEJyaWRpIHRoZW1zZWx2ZXMgYXJlIGltYWdpbmFyeTsgdGhleSBleGlzdCBub3Qg aW4gdGhlIHJlYWwgd29ybGQsIGJ1dCBpbnNpZGUgdGV4dHMsIHRoZSBuZXh0IHR5cGUgdG8gZXhw bGFpbi4gSG93ZXZlciwgYnJpZGkgYXJlIG5vdCBjb21wb3NlZCBvZiB3aGljaGV2ZXIgc3BlY2lm aWMgc3ltYm9scyBhcmUgdXNlZCB0byBleHByZXNzIHRoZW0gLSBiZWNhdXNlIGJyaWRpIGFyZSBp bWFnaW5hcnksIGRpZmZlcmVudCBzZW50ZW5jZXMgbWF5IGV4cHJlc3MgdGhlIHNhbWUgYnJpZGku IEl0IGNhbiBiZSB0aGF0IHRoZSBzZW50ZW5jZXMgYXJlIGluIGRpZmZlcmVudCBsYW5ndWFnZXMs IHRoYXQgdGhlIHdvcmQgb3JkZXIgaXMgY2hhbmdlZCwgb3IgdGhhdCBkaWZmZXJlbnQgd29yZHMg YXJlIHVzZWQgdG8gcmVmZXIgdG8gdGhlIHNhbWUgc3VtdGkuIFRodXMgJydtaSBkbyBwcmFtaScn LycnbWkgcHJhbWkgZG8nJywgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OywgJydtaSBrbyBwcmFtaScn IGFuZCAnJ2RvIG1pIHByYW1pJycgKHdoZW4gc3Bva2VuIGJ5IHRoZSBwZXJzb24gdG8gd2hpY2gg JydkbycnIHJlZmVycyBpbiB0aGUgZmlyc3Qgc2VudGVuY2UpIGFsbCByZWZlciB0byB0aGUgc2Ft ZSBicmlkaS4gQnJpZGkgYWx3YXlzIGhhdmUgdGhlaXIgZnVsbCBwbGFjZSBzdHJ1Y3R1cmUgZmls bGVkIGJ5IHNvbWV0aGluZyB3aXRoIGEgbm9uLXplcm8gdmFsdWUuCgotIFRoZSBjb25jZXB0IG9m IGEgdGV4dCBpcyBjbG9zZSBpbnRlcnR3aW5lZCB3aXRoIHRoZSBjb25jZXB0IG9mIGEgYnJpZGku IEFsbCBicmlkaSBhcmUgY29udGFpbmVkIGluIHRleHRzLCB0aG91Z2ggbm90IGFsbCB0ZXh0cyBj b250YWluIGJyaWRpLiBJbmRlZWQsIG9uZSBtaWdodCBkZWZpbmUgdGV4dHMgYXMgc29tZXRoaW5n IHRoYXQgY2FuIGNvbnRhaW4gYSBicmlkaSwgYnV0IHRoaXMgY2FuIGVhc2lseSBsZWFkIHRvIGNp cmN1bGFyIGRlZmluaXRpb25zIHdoZW4gYXR0ZW1waW5nIHRvIGRlZmluZSB3aGF0IGJyaWRpIGFy ZS4gVGhlIGN1cnJlbnQgdW5kZXJzdGFuZGluZyBvZiB3aGF0IHRoaW5ncyBzaG91bGQgYmUgY29u c2lkZXJlZCBhIHRleHQgaXMgdmFndWUgYXQgYmVzdC4gTGlrZSBicmlkaSwgdGV4dHMgYXJlIHNv bWV0aGluZyBldGhlcmFsLCBzb21ldGhpbmcgd2UgY2FuIGltYWdpbmUgZXhpc3QgaW4gYSByZWFs bSBvdXRzaWRlIHRoZSBwaHlzaWNhbCB3b3JsZC4gV2hpbGUgdGhlc2UgbGVzc29ucyBjZXJ0YWlu bHkgYXJlIGEgdGV4dCwgdGhlIHRleHQgaXMgbm90IG1hZGUgb2YgdGhlIHBhcGVyIHRoZXNlIGxl c3NvbnMgYXJlIHByaW50ZWQgb24sIG9yIHRoZSBtYWduZXRpYyBmaWVsZHMgd2hpY2ggY29uc3Rp dHV0ZXMgdGhlIGJ5dGVzIGl0J3Mgc3RvcmVkIG9uLiBUaG9zZSBwaHlzaWNhbCBtZWRpYSBvbmx5 IHJlcHJlc2VudCB0aGUgdGV4dC4gQnV0IHdoYXQgZXhhY3RseSBjYW4gcmVwcmVzZW50IGEgdGV4 dD8gV29yZHMsIGNlcnRhaW5seS4gQnV0IHdoYXQgYWJvdXQgYm9keSBsYW5ndWFnZT8gQW5kIGRv IGFjdGlvbnMgcmVhbGx5IHNwZWFrIF9fdGV4dHNfXyBsb3VkZXIgdGhhbiB3b3Jkcz8gVGhpcyBp cyBub3QgYW4gaXNzdWUgSSdsbCBhdHRlbXB0IHRvIGFuc3dlciBvciBldmVuIGdpdmUgYSBzaG90 IGluIHRoZXNlIGxlc3NvbnMuCisgVGhlIGNvbmNlcHQgb2YgYSB0ZXh0IGlzIGNsb3NlIGludGVy dHdpbmVkIHdpdGggdGhlIGNvbmNlcHQgb2YgYSBicmlkaS4gQWxsIGJyaWRpIGFyZSBjb250YWlu ZWQgaW4gdGV4dHMsIHRob3VnaCBub3QgYWxsIHRleHRzIGNvbnRhaW4gYnJpZGkuIEluZGVlZCwg b25lIG1pZ2h0IGRlZmluZSBhIHRleHQgYXMgc29tZXRoaW5nIHRoYXQgY2FuIGNvbnRhaW4gYSBi cmlkaSwgYnV0IHRoaXMgY2FuIGVhc2lseSBsZWFkIHRvIGNpcmN1bGFyIGRlZmluaXRpb25zIHdo ZW4gYXR0ZW1wdGluZyB0byBkZWZpbmUgd2hhdCBicmlkaSBhcmUuIFRoZSBjdXJyZW50IHVuZGVy c3RhbmRpbmcgb2Ygd2hhdCB0aGluZ3Mgc2hvdWxkIGJlIGNvbnNpZGVyZWQgdGV4dHMgaXMgdmFn dWUgYXQgYmVzdC4gTGlrZSBicmlkaSwgdGV4dHMgYXJlIHNvbWV0aGluZyBldGhlcmVhbCwgc29t ZXRoaW5nIHdlIGNhbiBpbWFnaW5lIGV4aXN0IGluIGEgcmVhbG0gb3V0c2lkZSB0aGUgcGh5c2lj YWwgd29ybGQuIFdoaWxlIHRoZXNlIGxlc3NvbnMgY2VydGFpbmx5IGFyZSBhIHRleHQsIHRoZSB0 ZXh0IGlzIG5vdCBtYWRlIG9mIHRoZSBwYXBlciB0aGVzZSBsZXNzb25zIGFyZSBwcmludGVkIG9u LCBub3IgdGhlIG1hZ25ldGljIGZpZWxkcyB3aGljaCBjb25zdGl0dXRlcyB0aGUgYnl0ZXMgaXQn cyBzdG9yZWQgb24uIFRob3NlIHBoeXNpY2FsIG1lZGlhIG9ubHkgX19yZXByZXNlbnRfXyB0aGUg dGV4dC4gQnV0IHdoYXQgZXhhY3RseSBjYW4gcmVwcmVzZW50IGEgdGV4dD8gV29yZHMsIGNlcnRh aW5seS4gQnV0IHdoYXQgYWJvdXQgYm9keSBsYW5ndWFnZT8gQW5kIGRvIGFjdGlvbnMgcmVhbGx5 IHNwZWFrIF9fdGV4dHNfXyBsb3VkZXIgdGhhbiB3b3Jkcz8gVGhpcyBpcyBub3QgYW4gaXNzdWUg SSdsbCBhdHRlbXB0IHRvIGFuc3dlciBvciBldmVuIGdpdmUgYSBzaG90IGluIHRoZXNlIGxlc3Nv bnMuCgotIFNldHMgYXJlIG11Y2ggZWFzaWVyIHRvIGRlYWwgd2l0aC4gVGhleSdyZSBhIGtpbmQg b2YgbWV0YS10eXBlOiBBIGltYWdpbmFyeSBib3gsIGluIHdoaWNoIGEgZ3JvdXAgb2Ygc3VtdGkg aXMgcGFja2VkIGludG8uIFRoaXMgYm94IGhhcyB2ZXJ5IGxpdHRsZSB0byBkbyB3aXRoIHdoYXQn cyBpbnNpZGUgaXQuIEEgYmlnIHNldCBkb2VzIG5vdCBtZWFuIHRoYXQgdGhlIHRoaW5ncyBpbiB0 aGUgc2V0IGlzIGJpZywgYnV0IHRoYXQgdGhlcmUgYXJlIG1hbnkgdGhpbmdzIGluIHRoZSBzZXQu IFNldHMgaGF2ZSB2ZXJ5IGZldyBwcm9wZXJ0aWVzLCB0aGVyZWZvcmUgc2V0cyBhcmUgb25seSB1 c2VkIHdoZW4gc3BlYWtpbmcgYWJvdXQgdGhlIG51bWJlciBvZiB0aGluZ3MgaW4gYSBnaXZlbiBj YXRlZ29yeSwgdGhlIG51bWJlciBvZiB0aGluZ3Mgc2hhcmVkIGJldHdlZW4gc2V2ZXJhbCBjYXRl Z29yaWVzLCB0aGUgY3JpdGVyaWEgZm9yIGluY2x1ZGluZyB0aGluZ3MgaW4gdGhlIGNhdGVnb3J5 IGV0Yy4KKyBTZXRzIGFyZSBtdWNoIGVhc2llciB0byBkZWFsIHdpdGguIFRoZXkncmUgYSBraW5k IG9mIG1ldGEtdHlwZTogQSBpbWFnaW5hcnkgYm94LCBpbiB3aGljaCBhIGdyb3VwIG9mIHN1bXRp IGlzIHBhY2tlZCBpbnRvLiBUaGlzIGJveCBoYXMgdmVyeSBsaXR0bGUgdG8gZG8gd2l0aCB3aGF0 J3MgaW5zaWRlIGl0LiBBIGJpZyBzZXQgZG9lcyBub3QgbWVhbiB0aGF0IHRoZSB0aGluZ3MgaW4g dGhlIHNldCBhcmUgYmlnLCBidXQgdGhhdCB0aGVyZSBhcmUgbWFueSB0aGluZ3MgaW4gdGhlIHNl dC4gU2V0cyBoYXZlIHZlcnkgZmV3IHByb3BlcnRpZXMsIHRoZXJlZm9yZSBzZXRzIGFyZSBvbmx5 IHVzZWQgd2hlbiBzcGVha2luZyBhYm91dCB0aGUgbnVtYmVyIG9mIHRoaW5ncyBpbiBhIGdpdmVu IGNhdGVnb3J5LCB0aGUgbnVtYmVyIG9mIHRoaW5ncyBzaGFyZWQgYmV0d2VlbiBzZXZlcmFsIGNh dGVnb3JpZXMsIHRoZSBjcml0ZXJpYSBmb3IgaW5jbHVkaW5nIHRoaW5ncyBpbiB0aGUgY2F0ZWdv cnkgZXRjLgoKVGhlIGxhc3QgdXNlZCB0eXBlIGlzIHRoZSB0cnV0aCB2YWx1ZS4gSSd2ZSBvbmx5 IHNlZW4gaXQgaW4gdXNlIGEgaGFuZGZ1bCBvZiB0aW1lcywgYW5kIG9ubHkgaW5jbHVkZSBpdCBo ZXJlIGJlY2F1c2UgaXQnbGwgYmUgcmVsZXZhbnQgd2hlbiBkaXNjdXNzaW5nIGEgY2VydGFpbiBh YnN0cmFjdGlvbiBpbiB0aGUgbmV4dCBsZXNzb24uIEEgdHJ1dGggdmFsdWUgaXMgc29tZSB2ZXJk aWN0IHRoYXQgYSBicmlkaSBpcyB0cnVlLCBmYWxzZSwgb3IgYW55d2hlcmUgaW4gYmV0d2Vlbi4g VGhlIG5hdHVyZSBvZiBhIHRydXRoIHZhbHVlIGlzIGEgdmVyZGljdCwgIlRydWUiLCAiRmFsc2Ui LCAiTW9zdGx5IHRydWUiIG9yIHRoZSBsaWtlLiBJdCdzIG9mdGVuIHJlcHJlc2VudGVkIGJ5IGEg bnVtYmVyLCBzdWNoIGFzIDAgKGZhbHNlKSwgMSAodHJ1ZSkgb3IgMC41IChoYWxmd2F5IHRydWUp LCBidXQgdGhpcyBhIHNpbXBseSBhIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0cnV0aCB2YWx1ZSwg YW5kIG5vdCB0aGUgdmFsdWUgaXRzZWxmLiBPbmUgbWlnaHQgYXMgd2VsbCByZXByZXNlbnQgaXQg YnkgYSBjb2xvciwgcmFuZ2luZyBmcm9tIHJlZCB0byBibHVlLgoKISFMb2piYW4gTGVzc29ucyAt IExlc3NvbiB0d2VudHktbmluZSAoc2VtYW50aWNzIG9mIHNpbXBsZSBhYnN0cmFjdGlvbnMpCi0g SGF2aW5nIGFxdWlyZWQgYSB0ZXJtaW5vbG9neSBzdWl0YWJsZSBmb3IgdGhlIGRpc2N1c3Npb24g b2YgdHlwZXMsIHdlIGNhbiBub3cgZWFzaWVyIHRha2Ugb24gdGhlIHNlbWFudGljcyBvZiBhYnN0 cmFjdGlvbnMuIE1vc3Qgb2Z0ZW4sIGFuIGFic3RyYWN0aW9uIGlzIG1lcmVseSBhIGJyaWRpIGNv bnNpZGVyZWQgYXMgYSBjZXJ0YWluIHR5cGUuIFdlIGJlZ2luIHdpdGggd2hhdCBJIGNvbnNpZGVy IHRoZSBzaW1wbGVzdCBvZiBhYnN0cmFjdGlvbnM6CisgSGF2aW5nIGFjcXVpcmVkIGEgdGVybWlu b2xvZ3kgc3VpdGFibGUgZm9yIHRoZSBkaXNjdXNzaW9uIG9mIHR5cGVzLCB3ZSBjYW4gbm93IG1v cmUgZWFzaWx5IHRha2Ugb24gdGhlIHNlbWFudGljcyBvZiBhYnN0cmFjdGlvbnMuIE1vc3Qgb2Z0 ZW4sIGFuIGFic3RyYWN0aW9uIGlzIG1lcmVseSBhIGJyaWRpIGNvbnNpZGVyZWQgYXMgYSBjZXJ0 YWluIHR5cGUuIFdlIGJlZ2luIHdpdGggd2hhdCBJIGNvbnNpZGVyIHRoZSBzaW1wbGVzdCBvZiBh YnN0cmFjdGlvbnM6CicnX19udV9fJyc6IHgxIGlzIGFuIGV2ZW50IG9mIEJSSURJIGhhcHBlbmlu ZwpZb3UncmUgYWxyZWFkeSBmYW1pbGlhciB3aXRoIHRoaXMgd29yZCBhbmQgaG93IGl0J3MgdXNl ZC4gQSAnJ251JyctYWJzdHJhY3Rpb24gaXMgYWx3YXlzIGFuIGV2ZW50LCBhbmQgYXMgc3VjaCwg aXQncyBzaXR1YXRlZCBpbiBvbmUgcGFydGljdWxhciB0aW1lIGFuZCBzcGFjZS4gVGh1czoKJydt aSBjYXRsdSBsbyBudSBsbyBwcmVudSBjdSBkYXJ4aSBsbyBnZXJrdScnIC0gIkkgd2F0Y2ggYSBw ZXJzb24gaGl0dGluZyBhIGRvZyIgaXMgYSBwcm9wZXIgZXZlbnQsIHdoZXJlYXMKLSAnJ21pIGth a25lIGxvIG51IGJhanJhIGZpIGxvIG1pIGJpcmthJycgLSAmcXVvdDtJIGNhbiBydW5uaW5nIG9u IG15IGFybXMmcXVvdDsgaXMgd3JvbmcsIGJlY2F1c2Ugbm8gcGFydGljdWxhciBldmVudCBvZiBy dW5uaW5nIGlzIGltcGxpZWQ6IFRoZSBydW5uaW5nIHlvdSdyZSBhYmxlIHRvIGRvIGlzIGEgc2Vs YnJpIC0gYSBnZW5lcmFsaXplZCBldmVudCwgYW5kIHRoZSBMb2piYW4gc2VudGVuY2UgYWJvdmUg c2hvdWxkIHNvdW5kIGFzIGJhZGx5IHdvcmRlZCBhcyBpdHMgRW5nbGlzaCB0cmFuc2xhdGlvbi4K KyAnJ21pIGtha25lIGxvIG51IGJhanJhIGZpIGxvIG1pIGJpcmthJycgLSAmcXVvdDtJIGNhbiBy dW5uaW5nIG9uIG15IGFybXMmcXVvdDsgaXMgd3JvbmcsIGJlY2F1c2Ugbm8gcGFydGljdWxhciBl dmVudCBvZiBydW5uaW5nIGlzIGltcGxpZWQ6IFRoZSBydW5uaW5nIHlvdSdyZSBhYmxlIHRvIGRv IGlzIGEgc2VsYnJpIC0gYSBnZW5lcmFsaXplZCBldmVudCwgYW5kIHRoZSBMb2piYW4gc2VudGVu Y2UgYWJvdmUgc2hvdWxkIHNvdW5kIGFzIGJhZGx5IHBocmFzZWQgYXMgaXRzIEVuZ2xpc2ggdHJh bnNsYXRpb24uCgpUaGVyZSBhcmUgbWFueSB3YXlzIHRvIHZpZXcgYW4gZXZlbnQsIGFuZCBzbyB0 aGVyZSBhcmUgZm91ciBvdGhlciBhYnN0cmFjdG9ycywgd2hpY2ggYWxsIGFsc28gY3JlYXRlIGV2 ZW50cy4gVGhlIG1lYW5pbmcgb2YgdGhlc2UgYWJzdHJhY3Rpb25zIGFyZSBhbGwgY292ZXJlZCBi eSAnJ251JycsIGJ1dCBtb3JlIHNwZWNpZmljLiBJJ2xsIGdvIHRocm91Z2ggdGhlbSBhbGwgaGVy ZToKCistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rCkBAIC1MaW5lczogMTExLTExOSBjaGFuZ2VkIHRvICtMaW5lczogMTEyLTEyMCBAQAor LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst KwonJ19fenXigJlvX18nJyB4MSBpcyBhbiBhY3Rpdml0eSBvZiBCUklESSBjb25zaXN0aW5nIG9m IHRoZSByZXBlYXRlZCBldmVudCBvZiB4MgpUaGUgdW5kZXJzdGFuZGluZyBvZiB0aGVzZSBhYnN0 cmFjdG9ycyBpcyB0aWVkIHRvIHRoZSB1bmRlcnN0YW5kaW5nIG9mIGV2ZW50IGNvbnRvdXJzLiAn J2114oCZZScnIGlzIGFraW4gdG8gdGhlIGV2ZW50IGNvbnRvdXIgJydjb+KAmWknJyBpbiB0aGUg c2Vuc2UgdGhhdCBib3RoIHRyZWF0IHRoZSBicmlkaSBhcyBwb2ludC1saWtlIGluIHRpbWUgYW5k IHNwYWNlOgotICcnbGUgbXVlIG1pIGthbnJvIGJpbnhvIGN1IHNlIGRqaWNhIG1pJycgIE1lIGJl Y29taW5nIGhlYWx0aHkgaXMgZGVzaXJlZCBieSBtZSBoYXMgdGhlIHNlbWFudGljIG1lYW5pbmcg dGhhdCB0aGUgcHJvY2VzcyBvZiBiZWNvbWluZyBoZWFsdGh5IGlzIG5vdCBiZWluZyBjb25zaWRl cmVkLiBJZiBpdCBjb25zaXN0cyBvZiBwYWluZnVsIGNoZW1vdGhlcmFweSwgaXQgaXMgcGxhdXNp YmxlIHRoYXQgdGhpcyBwcm9jZXNzIGlzIG5vdCBkZXNpcmVkIGF0IGFsbC4gQmVjb21pbmcgaGVh bHRoeSwgaW4gYSBwb2ludC1saWtlIHNlbnNlIGlzIGRlc2lyZWQsIGhvd2V2ZXIuPGJyIC8+Jyd6 YWknJyBpcyBsaWtlIHRoZSBldmVudCBjb250b3VyICcnY2FvJycgaW4gdGhlIHNlbnNlIHRoYXQg JydsZSB6YWkgQlJJREknJyBiZWdpbnMgdG8gYXBwbHkgd2hlbiB0aGUgYnJpZGkgYmVnaW5zIGFu ZCBzaGFycGx5IGVuZHMgd2hlbiB0aGUgYnJpZGkgY2Vhc2VzIHRvIGJlIHRydWUsIG11Y2ggbGlr ZSAnJ2NhbycnLjxiciAvPicnemFvIHphaSBtaSBrYW5ybyBiaW54bycnIG1lYW5zIHRoYXQgdGhl IHN0YXRlIG9mIG1lIGJlY29taW5nIGhlYWx0aHkgdG9vayB0b28gbG9uZyB0aW1lOyB0aGF0IHRo ZSB0aW1lIGJldHdlZW4gbXkgaGVhbHRoIGJlZ2lubmluZyB0byBpbXByb3ZlIGFuZCBiZSBhY3R1 YWxseSBiZWluZyBoZWFsdGh5IHdhcyBsb25nLXdpbmRlZC4KKyAnJ2xvIG11ZSBtaSBrYW5ybyBi aW54byBjdSBzZSBkamljYSBtaScnICAmcXVvdDtNZSBiZWNvbWluZyBoZWFsdGh5IGlzIGRlc2ly ZWQgYnkgbWUmcXVvdDsgaGFzIHRoZSBzZW1hbnRpYyBtZWFuaW5nIHRoYXQgdGhlIHByb2Nlc3Mg b2YgYmVjb21pbmcgaGVhbHRoeSBpcyBub3QgYmVpbmcgY29uc2lkZXJlZC4gSWYgaXQgY29uc2lz dHMgb2YgcGFpbmZ1bCBjaGVtb3RoZXJhcHksIGl0IGlzIHBsYXVzaWJsZSB0aGF0IHRoaXMgcHJv Y2VzcyBpcyBub3QgZGVzaXJlZCBhdCBhbGwuIEJlY29taW5nIGhlYWx0aHksIGluIGEgcG9pbnQt bGlrZSBzZW5zZSBpcyBkZXNpcmVkLCBob3dldmVyLjxiciAvPicnemFpJycgaXMgbGlrZSB0aGUg ZXZlbnQgY29udG91ciAnJ2NhbycnIGluIHRoZSBzZW5zZSB0aGF0ICcnbG8gemFpIEJSSURJJycg YmVnaW5zIHRvIGFwcGx5IHdoZW4gdGhlIGJyaWRpIGJlZ2lucyBhbmQgc2hhcnBseSBlbmRzIHdo ZW4gdGhlIGJyaWRpIGNlYXNlcyB0byBiZSB0cnVlLCBtdWNoIGxpa2UgJydjYW8nJy48YnIgLz4n J3phbyB6YWkgbWkga2Fucm8gYmlueG8nJyBtZWFucyB0aGF0IHRoZSBzdGF0ZSBvZiBtZSBiZWNv bWluZyBoZWFsdGh5IHRvb2sgdG9vIG11Y2ggdGltZTsgdGhhdCB0aGUgdGltZSBiZXR3ZWVuIG15 IGhlYWx0aCBiZWdpbm5pbmcgdG8gaW1wcm92ZSBhbmQgYmUgYWN0dWFsbHkgYmVpbmcgaGVhbHRo eSB3YXMgbG9uZy13aW5kZWQuClRoZSBhY3R1YWwgdHJlYXRtZW50IGlzIHBlcmhhcHMgYmV0dGVy IGNhdWdodCBieSAnJ3B14oCZdScnLCB3aGljaCwgbGlrZSBldmVudCBjb250b3VycyBpbiBnZW5l cmFsLCBwdXRzIGVtcGhhc2lzIG9uIHRoZSBlbnRpcmUgZXZlbnQgYXMgdW5mb2xkaW5nIHRocm91 Z2ggdGltZS4gJycuaWkgYmEgemkgY2/igJlhIHB14oCZdSBtaSBrYW5ybyBiaW54byAub2knJyBl eHByZXNzZXMgZmVhciB0aGF0IHRoZSBwYWluZnVsIHByb2Nlc3Mgb2YgYmVjb21pbmcgaGVhbHRo eSBpcyBhYm91dCB0byBiZWdpbi4gVGhlIHgyIGlzIGZpbGxlZCBieSBhIHNlcXVlbmNlIG9mIHN0 YWdlcywgd2hpY2ggY2FuIGJlIG1hZGUgYnkgaW50ZXJzcGFjaW5nIHRoZSBzdGFnZXMgd2l0aCB0 aGUgbm9uLWxvZ2ljYWwgY29ubmVjdGl2ZSAnJ2Nl4oCZbycnOiAnJ3pl4oCZdSBwdeKAmXUgbWkg a2Fucm8gYmlueG8ga2VpIGxvIG51IG1pIGZhY2tpIGNl4oCZbyBsbyBudSBtaSBqYWkgdG9sc3Rp IGNl4oCZbyBsbyBudSBtaSByZW52aScnIG1lYW5zIOKAnHNvbWV0aGluZyBpcyBhIGxvbmcgcHJv Y2VzcyBvZiBtZSBiZWNvbWluZyBoZWFsdGh5IGNvbnNpc3Rpbmcgb2YgdGhlIHN0YWdlcyBBICkg SSBmaW5kIG91dCBCICkgc29tZXRoaW5nIGFib3V0IG1lIGJlZ2lucyBDICkgSSBlbmR1cmUu4oCd Ci0gRmluYWxseSwgdGhlIHNlbWFudGljcyBvZiAnJ3p1bycnIHRyZWF0cyB0aGUgYWJzdHJhY3Rp b24gYXMgY29uc2lzdGluZyBvZiBhIG51bWJlciBvZiByZXBlYXRlZCBhY3Rpb25zOiAnJ2xvIHph J2Egem8ndSBkYXJ4aSBsbyB0YW54ZSBjdSByaW5rYSBsbyBjYSBtdSdlIHBvcnBpJycgICZxdW90 O1RoZSBvYnNlcnZlZCBhY3Rpdml0eSBvZiBiZWF0aW5nIHRoZSBib3ggY2F1c2VkIGl0cyBjdXJy ZW50IGJyb2tlbm5lc3MmcXVvdDsgaXMgbW9yZSBhY2N1cmF0ZSB0aGFuIHRoZSBzaW1pbGlhciBz ZW50ZW5jZSB1c2luZyAnJ251JycsIGJlY2F1c2UgJyd6dSdvJycgbWFrZXMgaXQgZXhwbGljaXQg dGhhdCBpdCB3YXMgdGhlIHJlcGVhdGluZyBvZiB0aGUgYWN0aW9uIG9mIGJlYXRpbmcsIG5vdCBh IHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2YgYmVhdGluZyB3aGljaCBicm9rZSB0aGUgYm94LgorIEZp bmFsbHksIHRoZSBzZW1hbnRpY3Mgb2YgJyd6dW8nJyB0cmVhdHMgdGhlIGFic3RyYWN0aW9uIGFz IGNvbnNpc3Rpbmcgb2YgYSBudW1iZXIgb2YgcmVwZWF0ZWQgYWN0aW9uczogJydsbyB6YSdhIHpv J3UgZGFyeGkgbG8gdGFueGUgY3Ugcmlua2EgbG8gY2EgbXUnZSBwb3JwaScnICAmcXVvdDtUaGUg b2JzZXJ2ZWQgYWN0aXZpdHkgb2YgYmVhdGluZyB0aGUgYm94IGNhdXNlZCBpdHMgY3VycmVudCBi cm9rZW5uZXNzJnF1b3Q7IGlzIG1vcmUgYWNjdXJhdGUgdGhhbiB0aGUgc2ltaWxhciBzZW50ZW5j ZSB1c2luZyAnJ251JycsIGJlY2F1c2UgJyd6dSdvJycgbWFrZXMgaXQgZXhwbGljaXQgdGhhdCBp dCB3YXMgdGhlIHJlcGVhdGluZyBvZiB0aGUgYWN0aW9uIG9mIGJlYXRpbmcsIG5vdCBhIHBhcnRp Y3VsYXIgaW5zdGFuY2Ugb2YgYmVhdGluZyB3aGljaCBicm9rZSB0aGUgYm94LgoKVGhlIHgyIG9m ICcnenUnbycnIGlzIGVpdGhlciBvbmUgZXZlbnQgb3IgYSBzZXF1ZW5jZSB3aGljaCBpcyByZXBl YXRlZC4gVG8gYmUgdW5uZWNlc3NhcmlseSBleHBsaWNpdCwgd2UgY291bGQgaGF2ZSBzdGF0ZWQg dGhhdCB0aGUgY2F1c2Ugb2YgdGhlIGN1cnJlbnQgYnJva2VubmVzcyB3YXMgJydsbyB6byd1IGRh cnhpIGxvIHRhbnhlIGtlaSBsb251IGxhZnRpIGxvIGdyYW5hIGtlaSBrdSBjZSdvIGxvbnUgbXV2 Z2F1IGxvIGdyYW5hIGxvIHRhbnhlIGtlaSBrdSBjZSdvJycgLi4uIGFuZCBzbyBvbi4KCistKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBA IC1MaW5lczogMTIzLTE0MyBjaGFuZ2VkIHRvICtMaW5lczogMTI0LTE0NCBAQAorLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwonJ19fbGkn aV9fJyc6IEV4cGVyaWVuY2UgYWJzdHJhY3RvcjogeDEgaXMgeDIncyBpbnRlcm5hbCBleHBlcmll bmNlIG9mIEJSSURJCkFuIGV4cGVyaWVuY2UgY2FuIGJlIGNvbnNpZGVyZWQgYW4gZXZlbnQgdHlw ZS4gSXQgaGFzIGFsbW9zdCB0aGUgc2FtZSBhdHRyaWJ1dGVzOiBJdCdzIHBsYWNlZCBpbiBzcGFj ZSwgdGhlcmUncyBmb2N1cyBvbiB0aGUgdGltZSBvdmVyIHdoaWNoIGl0IHVuZm9sZHMsIGFuZCBp dCdzIG5vdCBhIGZ1bmN0aW9uLgotIFVubGlrZSBldmVudCBhYnN0cmFjdGlvbnMsIGhvd2V2ZXIs IGFuIGV4cGVyaWVuY2UgaXMgZXhwbGljaXRseSBtZW50YWwgLSBhICcnbGknaScnLWFic3RyYWN0 aW9uIGNhbm5vdCBiZSBzYWlkIHRvIGV4aXN0IG91dHNpZGUgdGhlIG1pbmQgb2YgYSBwZXJzb24u IFRoaXMgZGlmZmVyZWNlIGlzIHB1cmVseSBzZW1hbnRpYywgYW5kIGV4Y2hhbmdpbmcgZXZlbnQg YW5kIGV4cGVyaWVuY2UgYWJzdHJhY3RvcnMgd291bGQgbm90IGJlIGNvbnNpZGVyZWQgYSB0eXBl IGZhaWx1cmUgaW4gdGhlIHNhbWUgc2Vuc2UgYXMgJydtaSBrYWtuZSBsbyBudS4uLicnLiBJdCBt aWdodCBub3QgbWFrZSBzZW5zZSwgYXMgaW4gJydsbyBrYWNtYSBjdSB2cmVqaSBsbyBsaSdpIGxv IG1pIHBlbmRvIGN1IGNsaXZhIGtlaSBtaScnIC0gJnF1b3Q7QSBjYW1lcmEgcmVjb3JkZWQgbXkg ZXhwZXJpZW5jZSBvZiBteSBmcmllbmQgbGVhdmluZyZxdW90Oy4gQnV0IHRoZW4gYWdhaW4sIGNp bmVtYSBpcyBkZXBlbmRlbnQgb24gY2FtZXJhcyBiZWluZyBhYmxlIHRvIHJlY29yZCB0aGUgYWN0 b3JzIGVtb3Rpb25zLgorIFVubGlrZSBldmVudCBhYnN0cmFjdGlvbnMsIGhvd2V2ZXIsIGFuIGV4 cGVyaWVuY2UgaXMgZXhwbGljaXRseSBtZW50YWwgLSBhICcnbGknaScnLWFic3RyYWN0aW9uIGNh bm5vdCBiZSBzYWlkIHRvIGV4aXN0IG91dHNpZGUgdGhlIG1pbmQgb2YgYSBwZXJzb24uIFRoaXMg ZGlmZmVyZW5jZSBpcyBwdXJlbHkgc2VtYW50aWMsIGFuZCBleGNoYW5naW5nIGV2ZW50IGFuZCBl eHBlcmllbmNlIGFic3RyYWN0b3JzIHdvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgdHlwZSBmYWls dXJlIGluIHRoZSBzYW1lIHNlbnNlIGFzICcnbWkga2FrbmUgbG8gbnUuLi4nJy4gSXQgbWlnaHQg bm90IG1ha2Ugc2Vuc2UsIGFzIGluICcnbG8ga2FjbWEgY3UgdnJlamkgbG8gbGknaSBsbyBtaSBw ZW5kbyBjdSBjbGl2YSBrZWkgbWknJyAtICZxdW90O0EgY2FtZXJhIHJlY29yZGVkIG15IGV4cGVy aWVuY2Ugb2YgbXkgZnJpZW5kIGxlYXZpbmcmcXVvdDsuIEJ1dCB0aGVuIGFnYWluLCBjaW5lbWEg aXMgZGVwZW5kZW50IG9uIGNhbWVyYXMgYmVpbmcgYWJsZSB0byByZWNvcmQgdGhlIGFjdG9ycycg ZW1vdGlvbnMuCkl0IGRvZXMsIEkgdGhpbmssIG1ha2UgY29tcGxldGUgc2Vuc2UgdG8gd3JpdGUg JydtaSBjaWtzaSBsbyBsaSdpIGxvIG1pIHBlbmRvIGN1IGNsaXZhIGtlaSBtaScnLCAnJ2xvIGxp J2kgbG8gbWkgdHVuYmEgY3UgbW9yc2kgY3UgbXVrdGkgbG8gbnUgbWkgY2F0cmEnJywgIGFuZCB0 aGUgbGlrZS4KJydsaSdpJycgaXMgZGVyaXZlZCBmcm9tICcnbGlmcmknJywgYW5kIGlzIGluZGVl ZCBhICcnc2UgbGlmcmknJyAtIGFuIGV4cGVyaWVuY2UuCgpBICcnZHUndScnLWFic3RyYWN0aW9u IGlzIHByb2JhYmx5IHRoZSBvdGhlciBraW5kIG9mIGFic3RyYWN0aW9uIHlvdSdyZSB1c2VkIHRv IHNlZWluZywgYmVzaWRlICcnbnUnJy4KLSAnJ19fZHUndV9fJyc6IEJyaWRpIGFic3RyYWN0aW9u OiB4MSBpcyB0aGUgYnJpZGkgb2YgQlJJREksIGFzIHJlcHJlc2VudGVkIGJ5IHRleHQgeDIKKyAn J19fZHUndV9fJyc6IEJyaWRpIGFic3RyYWN0b3I6IHgxIGlzIHRoZSBicmlkaSBvZiBCUklESSwg YXMgcmVwcmVzZW50ZWQgYnkgdGV4dCB4MgpBY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkLCBhYnN0 cmFjdGlvbnMgbGlrZSB0cnV0aHMsIGxpZXMsIHRoaW5ncyBiZWluZyBkaXNjb3ZlcmVkIG9yIHRo aW5ncyBiZWluZyBiZWxpZXZlZCBhcmUgYWxsIHB1cmUgYnJpZGk6Ci0gJycudWkgc2FpIHB1IHpp IGZhY2tpIGxvIGR1dSB6aSBjaXRrYSBsbyBjaWRqcnBpdHNhJycgIFllcyEgSSBqdXN0IGZvdW5k IG91dCB0aGF0IHBpenphIHdpbGwgYmUgZWF0ZW4gc29vbiEuCisgJycudWkgc2FpIHppIGZhY2tp IGxvIGR1dSB6aSBjaXRrYSBsbyBjaWRqcnBpdHNhJycgIFllcyEgSSBqdXN0IGZvdW5kIG91dCB0 aGF0IHBpenphIHdpbGwgYmUgZWF0ZW4gc29vbiEKJydtaSBrcmljaSBsbyBkdSd1IGxhIHR1cm5p IGN1IHpiYXN1IHBpIHJvIGxvIG11bmplIHppJ28nJyAtICJJIGJlbGlldmUgVGhlIExvcmQgY3Jl YXRlZCBhbGwgb2YgdGhlIHVuaXZlcnNlIgpXaGF0IGlzIGJlaW5nIGRpc2NvdmVyZWQgb3IgYmVs aWV2ZWQgaXMgdGhlIHRydXRoIG9mIGFuIGFic3RyYWN0IGJyaWRpLCBzbyAnJ2R1J3UnJyBpcyBh cHByb3ByaWF0ZS4KLSBBcyB5b3UgY2FuIHNlZSwgdGhlIHgyIG9mICcnZHUndScnIGlzIHVzZWQg Zm9yIHRoZSB0ZXh0IGluIHdoaWNoIHRoZSBicmlkaSBpcyBjb250YWluZWQuIEFzIHN0YXRlZCBi ZWZvcmUsIHRoZSBuYXR1cmUgb2YgdGV4dHMgYXJlIGhhcmQgdG8gbmFpbCBkb3duLCBidXQgaW4g cHJhY3RpY2UsICcnZHUndScnJ3MgeDIgY2FuIGJlIHVzZWQgdG8gZXhwcmVzcyBpbmRpcmVjdCBx dW90YXRpb246PGJyIC8+JycudWUgZG8gcHUgY3Vza3Uga3UnaSBsbyBzZSBkdSd1IGRvIG5lbGNp IGxvIGNrYWZpJycgLSAmcXVvdDtPaCEgQnV0IHlvdSBzYWlkIHRoYXQgeW91IGxpa2VkIGNvZmZl ZSEmcXVvdDsuIAorIEFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGRlZmluaXRpb24gb2YgZHV1LCB0 aGUgeDIgb2YgJydkdSd1JycgaXMgdXNlZCBmb3IgdGhlIHRleHQgaW4gd2hpY2ggdGhlIGJyaWRp IGlzIGNvbnRhaW5lZC4gQXMgc3RhdGVkIGJlZm9yZSwgdGhlIG5hdHVyZSBvZiB0ZXh0cyBpcyBo YXJkIHRvIG5haWwgZG93biwgYnV0IGluIHByYWN0aWNlLCAnJ2R1J3UnJydzIHgyIGNhbiBiZSB1 c2VkIHRvIGV4cHJlc3MgaW5kaXJlY3QgcXVvdGF0aW9uOjxiciAvPicnLnVlIGRvIHB1IGN1c2t1 IGt1J2kgbG8gc2UgZHUndSBkbyBuZWxjaSBsbyBja2FmaScnIC0gJnF1b3Q7T2ghIEJ1dCB5b3Ug c2FpZCB0aGF0IHlvdSBsaWtlZCBjb2ZmZWUhJnF1b3Q7CgpPdXQgb2Ygb2JsaWdhdGlvbiwgdGhp cyBsZXNzb24gd2lsbCBpbmNsdWRlIHRoZSB0cnV0aCB2YWx1ZSBhYnN0cmFjdG9yLCAnJ2plaScn LiBMZXQncyBzZWUgdGhlIGRlZmluaXRpb246CicnX19qZWlfXycnOiBUcnV0aCBhYnN0cmFjdGlv bjogeDEgaXMgdGhlIHRydXRoIHZhbHVlIG9mIEJSSURJIHVuZGVyIGVwaXN0ZW1vbG9neSB4Mgot ICcnamVpJycgaXMgcmFyZWx5IHVzZWQsIG5vdCBiZWNhdXNlIHRydXRoIGFic3RyYWN0aW9ucyBh cmUgaW5mcmVxdWVudGx5IG5lZWRlZCwgYnV0IGJlY2F1c2UgbW9zdCBsb2piYW5pc3RzIHVzZSBv dGhlciBtZWNoYW5pc21zIHRvIG9idGFpbiB0aGVtLiBUaGUgcmVhbCB1c2Ugb2YgJydqZWknJyBp cyB3aGVuZXZlciBhIHRydXRoIHZhbHVlIHdoaWNoIGlzIG5vdCAmcXVvdDt0cnVlJnF1b3Q7IG9y ICZxdW90O2ZhbHNlJnF1b3Q7IGlzIG5lZWRlZCwgaS5lLiBwcmFjdGljYWxseSBuZXZlci4gSSds bCBnaXZlIGEgY291cGxlIG9mIGV4YW1wbGVzOjxiciAvPicnbWkgZGknaSBwZW5zaSBsbyBqZWkg bWkgbWVya28nJyAtICZxdW90O0kgb2Z0ZW4gdGhpbmsgYWJvdXQgd2hldGhlciBJIGFtIEFtZXJp Y2FuIG9yIG5vdCZxdW90OyAoY29udHJhc3Qgd2l0aCAmcXVvdDtJIG9mdGVuIHRoaW5rIGFib3V0 IGhvdyBBbWVyaWNhbiBJIGFtJnF1b3Q7LCB3aGljaCB1c2VkIGFuIGFtb3VudCBhYnN0cmFjdGlv biwgbm90IGEgdHJ1dGggdmFsdWUpLgorICcnamVpJycgaXMgcmFyZWx5IHVzZWQsIG5vdCBiZWNh dXNlIHRydXRoIGFic3RyYWN0aW9ucyBhcmUgaW5mcmVxdWVudGx5IG5lZWRlZCwgYnV0IGJlY2F1 c2UgbW9zdCBMb2piYW5pc3RzIHVzZSBvdGhlciBtZWNoYW5pc21zIHRvIG9idGFpbiB0aGVtLiBU aGUgcmVhbCB1c2Ugb2YgJydqZWknJyBpcyB3aGVuZXZlciBhIHRydXRoIHZhbHVlIHdoaWNoIGlz IG5vdCAmcXVvdDt0cnVlJnF1b3Q7IG9yICZxdW90O2ZhbHNlJnF1b3Q7IGlzIG5lZWRlZCwgaS5l LiBwcmFjdGljYWxseSBuZXZlci4gSSdsbCBnaXZlIGEgY291cGxlIG9mIGV4YW1wbGVzOjxiciAv PicnbWkgZGknaSBwZW5zaSBsbyBqZWkgbWkgbWVya28nJyAtICZxdW90O0kgb2Z0ZW4gdGhpbmsg YWJvdXQgd2hldGhlciBJIGFtIEFtZXJpY2FuIG9yIG5vdCZxdW90OyAoY29udHJhc3Qgd2l0aCAm cXVvdDtJIG9mdGVuIHRoaW5rIGFib3V0IGhvdyBBbWVyaWNhbiBJIGFtJnF1b3Q7LCB3aGljaCB1 c2VzIGFuIGFtb3VudCBhYnN0cmFjdGlvbiwgbm90IGEgdHJ1dGggdmFsdWUpCicnbGkgcGkgYmkg amVpIGxhIHRpbmppbiBjdSBtaWtjZScnIC0gIkl0J3MgODAlIHRydWUgdGhhdCBUaW5kamluIGlz IGEgZG9jdG9yIiAod2hhdGV2ZXIgdGhhdCBtaWdodCBtZWFuKQoKCistKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBAIC1MaW5lczogMTQ1 LTE2NSBjaGFuZ2VkIHRvICtMaW5lczogMTQ2LTE2NSBAQAorLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwonJ19fc3UndV9fJyc6IFVuaXZl cnNhbCBhYnN0cmFjdG9yIHgxIGlzIHRoZSBhYnN0cmFjdGlvbiBvbiBCUklESSBjb25zaWRlcmVk IGFzIHgyIC8geDEgaXMgdGhlIGFic3RyYWN0aW9uIG9mIEJSSURJIG9mIHR5cGUgeDIuClRoZSBp ZGVhIG9mIHRoaXMgYWJzdHJhY3Rpb24gaXMgZWFzeSwgc28gSSdsbCBqdXN0IGdpdmUgYSBmZXcg ZXhhbXBsZXMgb2YgaXQgaW4gdXNlIGFuZCBsZWF2ZSBpdCBhdCB0aGF0OgotIFRoZSBFbmdsaXNo IHBocmFzZSB0aGF0IEkgbG92ZSB5b3UgaXMgZGVmaW5pdGVseSBhIHN1bXRpLCBzaW5jZSBpdHMg bWVhbnQgdG8gZnVuY3Rpb24gYXMgYSBzdWJqZWN0IG9yIG9iamVjdCBpbiBhIHNlbnRlbmNlLiBJ dHMgYWxzbyBjbGVhcmx5IG1hZGUgZnJvbSBhbiBhYnN0cmFjdGlvbi4gSXQgY2FuIHRoZXJlZm9y ZSBiZSB0cmFuc2xhdGVkICcnbG8gc3V1IG1pIGRvIHByYW1pJycuIFdpdGhvdXQgdGhlIGNvbnRl eHQgb2YgdGhlIEVuZ2xpc2ggc2VudGVuY2UsIHRob3VnaCwgaXRzIGhhcmQgdG8gZ3Vlc3Mgd2hh dCBraW5kIG9mIGFic3RyYWN0aW9uIHdhcyBtZWFudC4gSSB3aWxsIGRpZSBoYXBweSBieSB0aGUg dGltZSB0aGF0IEkgbG92ZSB5b3UuIHRyZWF0cyB0aGUgYWJzdHJhY3Rpb24gYXMgYW4gZXZlbnQg aGFwcGVuaW5nIGluIHRpbWUuIFRoZSB0cnV0aCBpcyB0aGF0IEkgbG92ZSB5b3UuIHRyZWF0cyB0 aGUgYWJzdHJhY3Rpb24gbGlrZSBhIGJyaWRpLCB3aGljaCBjYW4gYmUgY29uc2lkZXJlZCB0cnVl IG9yIGZhbHNlLiAmcXVvdDtZb3UgZG9uJ3Qga25vdyBob3cgbXVjaCBJIGxvdmUgeW91JnF1b3Q7 IHRyZWF0cyB0aGUgKGFsbW9zdCBzYW1lKSBhYnN0cmFjdGlvbiBhcyBhbiBhbW91bnQuIFVzaW5n IHRoZSBzZWNvbmQgc3VtdGkgcGxhY2Ugb2Ygc3V1LCB0aGVzZSBjYW4gYmUgZXhwbGljaXRseSBk aXN0aW5ndWlzaGVkIGJldHdlZW46CisgVGhlIEVuZ2xpc2ggcGhyYXNlIHRoYXQgSSBsb3ZlIHlv dSBpcyBkZWZpbml0ZWx5IGEgc3VtdGksIHNpbmNlIGl0cyBtZWFudCB0byBmdW5jdGlvbiBhcyBh IHN1YmplY3Qgb3Igb2JqZWN0IGluIGEgc2VudGVuY2UuIEl0cyBhbHNvIGNsZWFybHkgbWFkZSBm cm9tIGFuIGFic3RyYWN0aW9uLiBJdCBjYW4gdGhlcmVmb3JlIGJlIHRyYW5zbGF0ZWQgJydsbyBz dXUgbWkgZG8gcHJhbWknJy4gV2l0aG91dCB0aGUgY29udGV4dCBvZiB0aGUgRW5nbGlzaCBzZW50 ZW5jZSwgdGhvdWdoLCBpdHMgaGFyZCB0byBndWVzcyB3aGF0IGtpbmQgb2YgYWJzdHJhY3Rpb24g d2FzIG1lYW50LiBJIHdpbGwgZGllIGhhcHB5IGJ5IHRoZSB0aW1lIHRoYXQgSSBsb3ZlIHlvdS4g dHJlYXRzIHRoZSBhYnN0cmFjdGlvbiBhcyBhbiBldmVudCBoYXBwZW5pbmcgaW4gdGltZS4gVGhl IHRydXRoIGlzIHRoYXQgSSBsb3ZlIHlvdS4gdHJlYXRzIHRoZSBhYnN0cmFjdGlvbiBsaWtlIGEg YnJpZGksIHdoaWNoIGNhbiBiZSBjb25zaWRlcmVkIHRydWUgb3IgZmFsc2UuICZxdW90O1lvdSBk b24ndCBrbm93IGhvdyBtdWNoIEkgbG92ZSB5b3UmcXVvdDsgdHJlYXRzIHRoZSAobmVhcmx5IGlk ZW50aWNhbCkgYWJzdHJhY3Rpb24gYXMgYW4gYW1vdW50LiBVc2luZyB0aGUgc2Vjb25kIHN1bXRp IHBsYWNlIG9mIHN1dSwgdGhlc2UgY2FuIGJlIGV4cGxpY2l0bHkgZGlmZmVyZW50aWF0ZWQ6Cicn bG8gc3XigJl1IG1pIGRvIHByYW1pIGtlaSBiZSBsbyBmYXNudScnIGlzIGFuIGV2ZW50LgonJ2xv IHN14oCZdSBtaSBkbyBwcmFtaSBrZWkgYmUgbG8gYnJpZGknJyBpcyBhIGJyaWRpLgonJ2xvIHN1 4oCZdSBtaSBkbyBwcmFtaSBrZWkgYmUgbG8ga2xhbmknJyBpcyBhbiBhbW91bnQuCi0gVXNpbmcg JydzdXUnJyB0aGlzIHdheSwgdGhlIHNlbWFudGljLCB0aG91Z2ggbm90IGdyYW1tYXRpY2FsLCBy YW5nZSBvZiBhbGwgYWJzdHJhY3RvcnMgY2FuIGJlIGNvdmVyZWQuIE1vcmUgdXN1YWxseSwgdGhv dWdoLCBvdGhlciBhYnN0cmFjdG9ycyBhcmUgdXNlZC48YnIgLz5GaW5hbGx5LCBsb2piYW5pc3Rz IEpvaG4gQ293YW4gdHJhbnNsYXRlZCB0aGUgdGl0bGUgb2YgdGhlIGJvb2sgVGhlIENydWNpZml4 aW9uIG9mIEplc3VzIENvbnNpZGVyZWQgQXMgQSBEb3duaGlsbCBCaWN5Y2xlIFJhY2UgYXMgJyds byBzdSd1IGxhIC5pZWN1YXMuIGt1Y3RhaSBzZWxjYXRyYSBrZWkgYmUgbG8gc2FvcmR6aWZhJ2Eg a2UgbmFsbWF0bWEnZSBzdXR5dGVyanZpJycKKyBVc2luZyAnJ3N1dScnIHRoaXMgd2F5LCB0aGUg c2VtYW50aWMgKHRob3VnaCBub3QgZ3JhbW1hdGljYWwpIHJhbmdlIG9mIGFsbCBhYnN0cmFjdG9y cyBjYW4gYmUgY292ZXJlZC4gTW9yZSB1c3VhbGx5LCB0aG91Z2gsIG90aGVyIGFic3RyYWN0b3Jz IGFyZSB1c2VkLjxiciAvPkZpbmFsbHksIExvamJhbmlzdCBKLiBDb3dhbiB0cmFuc2xhdGVkIHRo ZSB0aXRsZSBvZiB0aGUgYm9vayBUaGUgQ3J1Y2lmaXhpb24gb2YgSmVzdXMgQ29uc2lkZXJlZCBB cyBBIERvd25oaWxsIEJpY3ljbGUgUmFjZSBhcyAnJ2xvIHN1J3UgbGEgLmllY3Vhcy4ga3VjdGFp IHNlbGNhdHJhIGtlaSBiZSBsbyBzYW9yZHppZmEnYSBrZSBuYWxtYXRtYSdlIHN1dHl0ZXJqdmkn Jy4KCgohIUxvamJhbiBMZXNzb25zIC0gTGVzc29uIHRoaXJ0eSAoc2VtYW50aWNzIG9mIGZ1bmN0 aW9ucykKRnVuY3Rpb25zIGFyZSBhIGdyb3VwIG9mIHR3by10aHJlZSB0eXBlcyBvZiBhYnN0cmFj dGlvbnMuIFRoZSB0ZXJtJ3Mgbm90IG9mZmljaWFsLCBidXQgSSdsbCB1c2UgaXQgaGVyZSBhbnl3 YXkuCi0gVGhlIGRlZmluaXRpb24gb2YgZnVuY3Rpb25zIGlzIGNsb3NlbHkgcmVsYXRlZCB0byB0 aGUgbGl0dGxlIG5lYXQgd29yZCAnJ2NlJ3UnJy4gJydjZSd1JycgaXMgYSBzdW1rYSdpIHdoaWNo IGZpbGxzIG9uZSBzdW10aSBwbGFjZS4gSXQncyBvbmx5IGZvdW5kIHVzYWdlIGluc2lkZSBhYnN0 cmFjdGlvbnMgd2hpY2ggYXJlIGFsc28gZnVuY3Rpb25zLiBBbGwgZnVuY3Rpb25zIG11c3QgaGF2 ZSBhdCBsZWFzdCBvbmUgJydjZSd1Jycgc29tZXdoZXJlIGluIHRoZSBhYnN0cmFjdGlvbiAtIHRo YXQncyB3aGF0IG1ha2VzIHRoZW0gZnVuY3Rpb25zLiBUaGUgJydjZSd1JycgY2FuIGJlIGVsaWRl ZCwgaW4gd2hpY2ggY2FzZSBpdCdzIG1vc3Qgb2Z0ZW4gYXNzdW1lZCB0byBmaWxsIHRoZSBmaXJz dCBlbGlkZWQgc3VtdGkgcGxhY2Ugb2YgdGhlIGZ1bmN0aW9uLCB1bmxlc3MgY29udGV4dCBwcm92 aWRlcyBhIG1vcmUgcmVhc29uYWJsZSBhbHRlcm5hdGl2ZS4KKyBUaGUgZGVmaW5pdGlvbiBvZiBm dW5jdGlvbnMgaXMgY2xvc2VseSByZWxhdGVkIHRvIHRoZSBuZWF0IGxpdHRsZSB3b3JkICcnY2Un dScnLiAnJ2NlJ3UnJyBpcyBhIHN1bWthJ2kgd2hpY2ggZmlsbHMgb25lIHN1bXRpIHBsYWNlLiBJ dCdzIG9ubHkgZm91bmQgdXNhZ2UgaW5zaWRlIGFic3RyYWN0aW9ucyB3aGljaCBhcmUgYWxzbyBm dW5jdGlvbnMuIEFsbCBmdW5jdGlvbnMgY2FuIGhhdmUgYXQgbGVhc3Qgb25lICcnY2UndScnIHNv bWV3aGVyZSBpbiB0aGUgYWJzdHJhY3Rpb24gLSB0aGF0J3Mgd2hhdCBtYWtlcyB0aGVtIGZ1bmN0 aW9ucy4gVGhlICcnY2UndScnIGNhbiBiZSBlbGlkZWQsIGluIHdoaWNoIGNhc2UgaXQncyBtb3N0 IG9mdGVuIGFzc3VtZWQgdG8gZmlsbCB0aGUgZmlyc3QgZWxpZGVkIHN1bXRpIHBsYWNlIG9mIHRo ZSBmdW5jdGlvbiwgdW5sZXNzIGNvbnRleHQgcHJvdmlkZXMgYSBtb3JlIHJlYXNvbmFibGUgYWx0 ZXJuYXRpdmUuCldoYXQgZG9lcyBpdCBhY3R1YWxseSBkbz8gTGV0J3MgaGF2ZSBhIGxvb2sgYXQg aXRzIGRlZmluaXRpb246CicnX19jZSd1JydfXzogUHNldWRvLXF1YW50aWZpZXIgYmluZGluZyBh IHZhcmlhYmxlIHdpdGhpbiBhbiBhYnN0cmFjdGlvbiB0aGF0IHJlcHJlc2VudHMgYW4gb3BlbiBw bGFjZS4KV2VsbCwgdGhhdCB3YXNuJ3QgdmVyeSBoZWxwZnVsLCBzbyBsZXQgbWUgdHJ5IGV4cGxh aW5pbmcgaXQgd2l0aCBhbm90aGVyIGFwcHJvYWNoOgotIFB1dHRpbmcgJydjZSd1JycgaW4gYSBz dW10aSBwbGFjZSBsZWF2ZXMgdGhlIHN1bXRpIHBsYWNlIGVtcHR5LiBUaGUgcGxhY2UgaXMgbm90 IGVyYXNlZCwgbGlrZSBpZiB5b3UgZmlsbCBpdCB3aXRoICcnemknbycnLCBidXQgdGhlIHBsYWNl IGlzIG5vdCBmaWxsZWQgd2l0aCBhbnl0aGluZyAtIG5vdCBhIHNwZWNpZmljIHRoaW5nLCBub3Qg YSAnJ3p1J2knJywgbm90IGEgICcnem8nZScnLCBub3RoaW5nLiBJbiB0aGF0IG1hbm5lciwgdGhl IGVtcHR5IHN1bXRpIHBsYWNlcyBhcmUgcmVtbmlzY2llbnQgb2YgdGhlIHgxLCB4MiwgYW5kIHgz J3Mgd2UgcHV0IGluIHRoZSBzdW10aSBwbGFjZXMgb2YgRW5nbGlzaCBkZWZpbml0aW9ucyBvZiBi cml2bGEgLSBtYXJraW5nICZxdW90O1RoaXMgaXMgd2hlcmUgc29tZXRoaW5nIGVsc2UgY2FuIGJl IHB1dCZxdW90Oy48YnIgLz5UaHVzICcnbWkgY2l0a2EgbG8gdGkgYmFkbmEnJyBpcyAmcXVvdDtJ IGVhdCB0aGlzIGJhbmFuYSZxdW90OywgYnV0PGJyIC8+JydtaSBjaXRrYSBjZSd1JycgaXMgJnF1 b3Q7SSBlYXQgWCZxdW90Oy4KKyBQdXR0aW5nICcnY2UndScnIGluIGEgc3VtdGkgcGxhY2UgbGVh dmVzIHRoZSBzdW10aSBwbGFjZSBlbXB0eS4gVGhlIHBsYWNlIGlzIG5vdCBlcmFzZWQsIGxpa2Ug aWYgeW91IGZpbGwgaXQgd2l0aCAnJ3ppJ28nJywgYnV0IHRoZSBwbGFjZSBpcyBub3QgZmlsbGVk IHdpdGggYW55dGhpbmcgLSBub3QgYSBzcGVjaWZpYyB0aGluZywgbm90IGEgJyd6dSdpJycsIG5v dCBhICAnJ3pvJ2UnJywgbm90aGluZy4gSW4gdGhhdCBtYW5uZXIsIHRoZSBlbXB0eSBzdW10aSBw bGFjZXMgYXJlIHJlbWluaXNjZW50IG9mIHRoZSB4MSwgeDIsIGFuZCB4MydzIHdlIHB1dCBpbiB0 aGUgc3VtdGkgcGxhY2VzIG9mIEVuZ2xpc2ggZGVmaW5pdGlvbnMgb2YgYnJpdmxhIC0gbWFya2lu ZyAmcXVvdDtUaGlzIGlzIHdoZXJlIHNvbWV0aGluZyBlbHNlIGNhbiBiZSBwdXQmcXVvdDsuPGJy IC8+VGh1cyAnJ21pIGNpdGthIGxvIHRpIGJhZG5hJycgaXMgJnF1b3Q7SSBlYXQgdGhpcyBiYW5h bmEmcXVvdDssIGJ1dCAnJ21pIGNpdGthIGNlJ3UnJyBpcyAmcXVvdDtJIGVhdCBYJnF1b3Q7LgpP ZiBjb3Vyc2UsICJJIGVhdCBYIiBpcyBtZWFuaW5nbGVzcyB1bmxlc3MgdGhhdCBYIGlzIGZpbGxl ZCBieSBzb21ldGhpbmcsIGFuZCBpbmRlZWQgdGhlIHNlbnRlbmNlICcnbWkgY2l0a2EgY2UndScn IGlzIHNlbnNlbGVzcyBpbiBMb2piYW4gYXMgd2VsbC4KCgorLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwpAQCAtTGluZXM6IDE2Ny0xODEg Y2hhbmdlZCB0byArTGluZXM6IDE2Ny0xODEgQEAKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKJydfX2thX18nJyBQcm9wZXJ0eS9xdWFs aXR5IGFic3RyYWN0b3IgKC1uZXNzKTsgeDEgaXMgcXVhbGl0eS9wcm9wZXJ0eSBleGhpYml0ZWQg YnkgQlJJREkuClVuZGVyIHRoZSB1bmRlcnN0YW5kaW5nIHdoaWNoIEkgd2lsbCB0ZWFjaCwgdGhp cyBnbG9zcyBpcyBtaWxkbHkgbWlzbGVhZGluZy4gSW5zdGVhZCwgJydrYScnIHNob3VsZCBwcm9i YWJseSBiZSBnbG9zc2VkIHN1Y2g6Ci0gJydrYScnIFByZWRpY2F0ZS9zZWxicmkgYWJzdHJhY3Rv cjogeDEgaXMgdGhlIHByZWRpY2F0ZS9zZWxicmkgb2YgQlJJREkgKG5lZWRzIGF0IGxlYXN0IG9u ZSBvcGVuIHZhcmlhYmxlIGkuZSBhIGNlJ3UpPGJyIC8+VXNpbmcgYSBzZWxicmkgYWJzdHJhdGlv biwgJnF1b3Q7SSBlYXQgWCZxdW90OyBjYW4gbWFrZSBzZW5zZSwgYXMgaW4gdGhlIGZvbGxvd2lu ZyBleGFtcGxlOgorICcnX19rYV9fJycgUHJlZGljYXRlL3NlbGJyaSBhYnN0cmFjdG9yOiB4MSBp cyB0aGUgcHJlZGljYXRlL3NlbGJyaSBvZiBCUklESSAobmVlZHMgYXQgbGVhc3Qgb25lIG9wZW4g dmFyaWFibGUgaS5lLiBhICZxdW90O2NlJ3UmcXVvdDspPGJyIC8+VXNpbmcgYSBzZWxicmkgYWJz dHJhY3Rpb24sICZxdW90O0kgZWF0IFgmcXVvdDsgY2FuIG1ha2Ugc2Vuc2UsIGFzIGluIHRoZSBm b2xsb3dpbmcgZXhhbXBsZToKJydfX2NrYWppX18nJyB4MSBpcyBjaGFyYWN0ZXJpemVkIGJ5IHNl bGJyaSB4MgotICcnbG8gdGkgYmFkbmEgY3UgY2thamkgbG8ga2EgbWkgY2l0a2EgY2UndScnIC0g JnF1b3Q7VGhpcyBiYW5hbmEgaXMgY2hhcmFjdGVydGl6ZWQgYnkgdGhlIHNlbGJyaTogJnF1b3Q7 SSBlYXQgWCZxdW90OyZxdW90Oywgd2hpY2ggbWF5IGJlIHJlcHJhc2VkIGFzICZxdW90O1RoaXMg YmFuYW5hIGZpdHMgdGhlIHNlbGJyaTogJnF1b3Q7QmVpbmcgZWF0ZW4gYnkgbWUmcXVvdDsmcXVv dDssIHdoaWNoIGlzIG9mIGNvdXJzZSBlcXVpdmFsZW50IHRvICcnbWkgY2l0a2EgbG8gdGkgYmFk bmEnJyAtICZxdW90O0kgZWF0IHRoaXMgYmFuYW5hJnF1b3Q7LjxiciAvPkZvciB0aGUgc3RhdGVt ZW50IHRvIG1ha2Ugc2Vuc2UsIHRoZSBzdW10aSBwbGFjZSBoZWxkIG9wZW4gYnkgJydjZSd1Jycg bXVzdCBiZSBmaWxsZWQgYnkgc29tZXRoaW5nLiBUaGUgbWFpbiBzZWxicmkgb2YgdGhlIHN0YXRl bWVudCwgaW4gdGhpcyBjYXNlICcnY2thamknJywgZ2l2ZXMgdXMgYSBjbHVlIGhvdyB0byBmaWxs IHRoZSBvcGVuIHN1bXRpIHBsYWNlLiBTdWNoIHNlbGJyaSBhbG1vc3QgYWx3YXlzIGZpbGwgaXQg d2l0aCBhIHN1bXRpIGZyb20gdGhlIG1haW4gc2VsYnJpLiBIb3cgJydjZSd1JycgaXMgZ2l2ZW4g YSBub24temVybyB2YWx1ZSBoYXMgYmVlbiBhIHN1YmplY3Qgb2YgbWlub3IgZGViYXRlIGluIExv amJhbmlzdGFuLCBidXQgdGhlIGlzc3VlIGlzIG1vcmUgb3IgbGVzcyBzZXR0bGVkOiAnJ2NlJ3Un JyBrZWVwcyBhIHN1bXRpIHBsYWNlIG9wZW4sIGFuZCB0aGUgbWFpbiBzZWxicmkgdGhlbiBmaWxs cyBpdCB3aXRoIHNvbWV0aGluZy4KKyAnJ2xvIHRpIGJhZG5hIGN1IGNrYWppIGxvIGthIG1pIGNp dGthIGNlJ3UnJyAtICZxdW90O1RoaXMgYmFuYW5hIGlzIGNoYXJhY3Rlcml6ZWQgYnkgdGhlIHNl bGJyaTogJnF1b3Q7SSBlYXQgWCZxdW90OyZxdW90Oywgd2hpY2ggbWF5IGJlIHJlcGhyYXNlZCBh cyAmcXVvdDtUaGlzIGJhbmFuYSBmaXRzIHRoZSBzZWxicmk6ICZxdW90O0JlaW5nIGVhdGVuIGJ5 IG1lJnF1b3Q7JnF1b3Q7LCB3aGljaCBpcyBvZiBjb3Vyc2UgZXF1aXZhbGVudCB0byAnJ21pIGNp dGthIGxvIHRpIGJhZG5hJycgLSAmcXVvdDtJIGVhdCB0aGlzIGJhbmFuYSZxdW90Oy48YnIgLz5G b3IgdGhlIHN0YXRlbWVudCB0byBtYWtlIHNlbnNlLCB0aGUgc3VtdGkgcGxhY2UgaGVsZCBvcGVu IGJ5ICcnY2UndScnIHVzdWFsbHksIGJ1dCBub3QgYWx3YXlzLCBtdXN0IGJlIGZpbGxlZCBieSBz b21ldGhpbmcuIFRoZSBtYWluIHNlbGJyaSBvZiB0aGUgc3RhdGVtZW50LCBpbiB0aGlzIGNhc2Ug Jydja2FqaScnLCBnaXZlcyB1cyBhIGNsdWUgaG93IHRvIGZpbGwgdGhlIG9wZW4gc3VtdGkgcGxh Y2UuIFN1Y2ggc2VsYnJpIGFsbW9zdCBhbHdheXMgZmlsbCBpdCB3aXRoIGEgc3VtdGkgZnJvbSB0 aGUgbWFpbiBzZWxicmkuIEhvdyAnJ2NlJ3UnJyBpcyBnaXZlbiBhIG5vbi16ZXJvIHZhbHVlIGhh cyBiZWVuIGEgc3ViamVjdCBvZiBtaW5vciBkZWJhdGUgaW4gTG9qYmFuaXN0YW4sIGJ1dCB0aGUg aXNzdWUgaXMgbW9yZSBvciBsZXNzIHNldHRsZWQ6ICcnY2UndScnIGtlZXBzIGEgc3VtdGkgcGxh Y2Ugb3BlbiwgYW5kIHRoZSBtYWluIHNlbGJyaSB0aGVuIGZpbGxzIGl0IHdpdGggc29tZXRoaW5n LCBhbmQgd2hhdCBmaWxscyB0aGUgcGxhY2UgZGVwZW5kcyBvbiB0aGUgc2VsYnJpIGluIHF1ZXN0 aW9uLgoKLSBUaG91Z2ggaXQgb2Z0ZW4gaXMsIHRoZSAnJ2NlJ3UnJyBwbGFjZSBuZWVkIG5vdCBi ZSBmaWxsZWQgYnkgdGhlIHNlbGJyaSBpbiBvcmRlciBmb3IgdGhlIGFic3RyYWN0aW9uIHRvIG1h a2Ugc2Vuc2U6IE9uIGl0cyBvd24sICcnbG8ga2EgY2UndSB0ZSB2ZWNudSBsbyBmaW5wZScnIG1l YW5zOiAmcXVvdDtidXlpbmcgYSBmaXNoJnF1b3Q7LCBvciAmcXVvdDt0byBidXkgYSBmaXNoJnF1 b3Q7CisgVGhvdWdoIGl0IG9mdGVuIGlzLCB0aGUgJydjZSd1JycgcGxhY2UgbmVlZCBub3QgYWx3 YXlzIGJlIGZpbGxlZCBieSB0aGUgc2VsYnJpIGluIG9yZGVyIGZvciB0aGUgYWJzdHJhY3Rpb24g dG8gbWFrZSBzZW5zZTogT24gaXRzIG93biwgJydsbyBrYSBjZSd1IHRlIHZlY251IGxvIGZpbnBl JycgbWVhbnM6ICZxdW90O2J1eWluZyBhIGZpc2gmcXVvdDssIG9yICZxdW90O3RvIGJ1eSBhIGZp c2gmcXVvdDsuIFRoaXMgY2FuIGJlIHVzZWQgaW4gYSBzZW50ZW5jZSB3aXRob3V0IHRoZSBzZWxi cmkgZmlsbGluZyB0aGUgY2V1IGluOgonJ2xvIHNlIGxpc3JpIGN1IHNyYW5hIGxvIGthIGNlJ3Ug dGUgdmVjbnUgbG8gZmlucGUnJyAtICJUaGUgcGxvdCBpcyBhYm91dCBidXlpbmcgYSBmaXNoIi4g SGVyZSwgJydzcmFuYScnIGRvZXMgbm90IGFwcGx5IGFueXRoaW5nIHRvIHRoZSAnJ2NlJ3UnJy1w bGFjZSwgYW5kIHRoZSBhYnN0cmFjdGlvbiBpcyBpbnN0ZWFkIHNlZW4gYXMgdGhlIHNlbGJyaSBv biBpdHMgb3duLgoKLSBBbiBhbHRlcm5hdGl2ZSB3YXkgb2YgZXhwbGFpbmluZyAnJ2NlJ3UnJyBp cyBieSByZWdhcmRpbmcgdGhlbSBhcyB2YXJpYWJsZXMgaW4gYSBsYW1iZGEgZnVuY3Rpb24uIEZv ciBpbnN0YW5jZSwgY29uc2lkZXIgdGhlIHNlbnRlbmNlOjxiciAvPicnbGEgLmFsaXMuIGN1IGRq aWNhIGxvIGthIGNlJ3UgdGUgdmVjbnUgbG8gZmlucGUnJyAtICZxdW90O0FsaWNlIHdhbnRzIHRo YXQgQWxpY2UgYnV5cyBhIGZpc2gmcXVvdDsKKyBBbiBhbHRlcm5hdGl2ZSB3YXkgb2YgZXhwbGFp bmluZyAnJ2NlJ3UnJyBpcyBieSByZWdhcmRpbmcgdGhlIHdvcmQgYXMgcmVwcmVzZW50aW5nIHZh cmlhYmxlcyBpbiBhIGxhbWJkYSBmdW5jdGlvbi4gRm9yIGluc3RhbmNlLCBjb25zaWRlciB0aGUg c2VudGVuY2U6PGJyIC8+JydsYSAuYWxpcy4gY3UgZGppY2EgbG8ga2EgY2UndSB0ZSB2ZWNudSBs byBmaW5wZScnIC0gJnF1b3Q7QWxpY2Ugd2FudHMgdG8gYnV5IGEgZmlzaCZxdW90OwpIZXJlLCB0 aGUgZmlyc3QgYXJndW1lbnQgb2YgJydkamljYScnIGlzIHRoZSBvbmUgd2hvIHdhbnRzIHNvbWV0 aGluZywgbmFtZWx5IEFsaWNlLiBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIHRoZSBzZWxicmkgdGhh dCBBbGljZSB3YW50cyB0byBmdWxmaWxsOiBCdXlpbmcgYSBmaXNoLgpXZSBjYW4gdmlldyAnJ2Nl J3UnJyBhcyBhIGZyZWUgdmFyaWFibGUsIHdoaWNoIHRoZW4gYmVjb21lcyBib3VuZCBieSBhIGxh bWJkYSBhYnN0cmFjdGlvbiwgbmFtZWx5ICcna2EnJy4gIE5vdywgJydrYSBjZSd1IHRlcnZlJ3Ug bG8gZmlucGUnJyBjYW4gYmUgc2VlbiBhcyBhIGxhbWJkYSBmdW5jdGlvbjoKCistKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCkBAIC1MaW5l czogMTgzLTIzOSBjaGFuZ2VkIHRvICtMaW5lczogMTgzLTI0MCBAQAorLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKwphbmQgaW4gdGhpcyBj YXNlICcnZGppY2EnJyBzdXBwbGllcyB0aGUgbGFtYmRhIGZ1bmN0aW9uIHdpdGggQWxpY2UuCgot IExhbWJkYXMgY2FuIGJlIHN0b3JlZCB0byBhbGxvd2luZyB0byBwYXNzIHRoZW0gYXJvdW5kIGFu ZCB1c2UgdGhlbSBpbiB2YXJpb3VzIHNpdHVhdGlvbnM6PGJyIC8+JydjYSdlIHpvJ2UgZ29pIGtv J2Ega2EgY2UndSBkYW5zdSAuaSBtaSBrbydhIGNrYWppIC5pIGRvIGtvJ2EgZGppY2EgLmkgbWEn YSBrbydhIGtha25lJycgIC0gJnF1b3Q7SSBkZWZpbmU6IFRoYXQga28nYSBpcyBzb21lIHByb3Bl cnR5IHdoaWNoIG1lYW5zICZxdW90O3RvIGRhbmNlJnF1b3Q7LiBJIGFtIGRvaW5nIGl0LiBZb3Ug d2FudCBpdC4gRXZlcnlvbmUgY2FuIGRvIGl0JnF1b3Q7CisgTGFtYmRhcyBjYW4gYmUgc3RvcmVk LCBhbGxvd2luZyB0aGVtIHRvIGJlIHBhc3NlZCBhcm91bmQgYW5kIHVzZSB0aGVtIGluIHZhcmlv dXMgc2l0dWF0aW9uczo8YnIgLz4nJ2NhJ2Uga28nYSBrYSBjZSd1IGRhbnN1IC5pIG1pIGtvJ2Eg Y2thamkgLmkgZG8ga28nYSBkamljYSAuaSBtYSdhIGtvJ2Ega2FrbmUnJyAgLSBJdCBpcyBkYW5j aW5nLiBJIGFtIGRvaW5nIGl0LiBZb3Ugd2FudCBpdC4gRXZlcnlvbmUgY2FuIGRvIGl0LiZxdW90 OwoKLSBVc2luZyAnJ2thJycsIHdlIGNhbiBjb3JyZWN0bHkgcGhyYXNlICZxdW90O0kgY2FuIHJ1 biBvbiBteSBhcm1zJnF1b3Q7LiBIb3c/CisgTm93LCB1c2luZyAnJ2thJycsIHlvdSBjYW4gY29y cmVjdGx5IHBocmFzZSAmcXVvdDtJIGNhbiBydW4gb24gbXkgYXJtcyZxdW90Oy4gSG93PwpBbnN3 ZXI6IH5+Z3JleSxncmV5Om1pIGtha25lIGxvIGthIHtjZSd1fSBiYWpyYSBmaSBsbyBtaSBiaXJr YX5+CgotIEEgbG90IG9mIG9mdGVuLXVzZWQgZ2lzbXUgdGFrZXMgc2VsYnJpIGFzIG9uZSBvZiB0 aGVpciBzdW10aSwgd2hpY2ggbWVhbnMgJydsbyBrYScnIGlzIHVzZWQgcXVpdGUgb2Z0ZW4uIEEg ZmV3IG5vdGFibGUgZXhhbXBsZXMgYXJlICcndHJvY2knJywgJydrYWtuZScnLCAnJ2RqaWNhJycs ICcnenVrdGUnJywgJydzbmFkYScnLCAnJ2ZyYXh1Jyc6PGJyIC8+JydsbyBrYXNsaSBuYSBrYWtu ZSBsbyBrYSBzaWxjdSBsYSdlIGxhJ29pIFgtZmlsZXMnJyAtICZxdW90O1RoZSBkb25rZXkgY2Fu bm90IHdoaXN0bGUgdGhlIFgtZmlsZXMgc29uZyZxdW90OworIEEgbG90IG9mIG9mdGVuLXVzZWQg Z2lzbXUgdGFrZSBzZWxicmkgYXMgb25lIG9mIHRoZWlyIHN1bXRpLCB3aGljaCBtZWFucyAnJ2xv IGthJycgaXMgdXNlZCBxdWl0ZSBvZnRlbi4gQSBmZXcgbm90YWJsZSBleGFtcGxlcyBhcmUgJyd0 cm9jaScnLCAnJ2tha25lJycsICcnZGppY2EnJywgJyd6dWt0ZScnLCAnJ3NuYWRhJycgYW5kICcn ZnJheHUnJzo8YnIgLz4nJ2xvIGthc2xpIG5hZSBrYWtuZSBsbyBrYSBzaWxjdSBsYSdlIGxhJ29p IFgtZmlsZXMnJyAtICZxdW90O1RoZSBkb25rZXkgY2Fubm90IHdoaXN0bGUgdGhlIFgtZmlsZXMg c29uZyZxdW90OwoKJycuZSdvIGtvIGxvIGphaSBzZSB6Z2lrZSBjdSBmcmF4dSBsbyBrYSBkYXJ4 aSBsbyBkYW1yaSBjYSBsbyBudSBkbyBzaXBuYScnIC0gIlBsZWFzZSBmb3JnaXZlIHRoZSBtdXNp Y2lhbiBmb3Igc3RyaWtpbmcgdGhlIGRydW0gd2hlbiB5b3Ugd2VyZSBzbGVlcGluZyEiCgotIEF0 IGxlYXN0IG9uZSBzZWxicmkgY2FuIGZpbGwgdHdvICcnY2UndScnIHdpdGhpbiBhIGthLWFic3Ry YWN0aW9uLiBXaGF0IGRvZXMgdGhlIGZvbGxvd2luZyBqdWZyYSBtZWFuPworIEF0IGxlYXN0IG9u ZSBzZWxicmkgY2FuIGZpbGwgdHdvICcnY2UndScnIHdpdGhpbiBhIGthLWFic3RyYWN0aW9uLCBu YW1lbHkgc2lteHUuIFdoYXQgZG9lcyB0aGUgZm9sbG93aW5nIGp1ZnJhIG1lYW4/CgonJ21pIGxv IHBhbXBlJ28gY3Ugc2lteHUgbG8ga2Ege2NlJ3UgY2UndX0gZ2xldHUnJwpBbnN3ZXI6IH5+Z3Jl eSxncmV5OicnTWUgYW5kIG15IGxvdmVyIGhhdmUgc2V4IHdpdGggZWFjaCBvdGhlciBtdXR1YWxs eSJ+fgoKLSBPZiBjb3Vyc2UsIHRoZSAnJ2NlJ3UnJyBuZWVkIG5vdCBiZSBwbGFjZWQgaW4gdGhl IGJlZ2lubmluZyBvZiB0aGUgJydrYScnLWFic3RyYWN0aW9uLiBPbmUgY291bGQgdmVyeSB3ZWxs IHNwZWFrIG9mCisgT2YgY291cnNlLCB0aGUgJydjZSd1JycgbmVlZCBub3QgYmUgcGxhY2VkIGlu IHRoZSBiZWdpbm5pbmcgb2YgdGhlICcna2EnJy1hYnN0cmFjdGlvbiwgdGhvdWdoIGl0IGlzIGJ5 IGRlZmF1bHQuIE9uZSBjb3VsZCB2ZXJ5IHdlbGwgc3BlYWsgb2Y6CicnbG8ga2EgbGEgLmJhYi4g bWVsYmkgY2UndScnIC0gIlRoZSBzZWxicmkgb2Y6ICJCb2IgaXMgYmVhdXRpZnVsIGFjY29yZGlu ZyB0byBYIiIsIG9yIGluIG90aGVyIHdvcmRzOiAiVGhpbmtpbmcgdGhhdCBCb2IgaXMgYmVhdXRp ZnVsIi4KSW5kZWVkLCBtb3ZpbmcgdGhlICcnY2UndScnIGFyb3VuZCBpbiBhbiBmdW5jdGlvbiBj cmVhdGVzIHZlcnkgZGlmZmVyZW50IG1lYW5pbmdzOgotICcnbG8ga2EgY2UndSBwYW56aSBsYSAu YWxpcy4nJyAtICZxdW90O1RoZSBzZWxicmk6ICZxdW90O1ggaXMgYSBjaGlsZCBvZiBBbGljZSZx dW90OyZxdW90OyA9ICZxdW90O0JlaW5nIEFsaWNlJ3MgY2hpbGQmcXVvdDssIHZlcnN1czxiciAv PicnbG8ga2EgbGEgLmFsaXMuIHBhbnppIGNlJ3UnJyAtICZxdW90O1RoZSBzZWxicmk6ICZxdW90 O0FsaWNlIGlzIGEgY2hpbGQgb2YgWCZxdW90OyZxdW90OyA9ICZxdW90O0JlaW5nIHRoZSBwYXJl bnQgb2YgQWxpY2UmcXVvdDsuPGJyIC8+T25lIGNvdWxkIGV2ZW4gaW1hZ2luZSBhIHN0YXRlbWVu dCBpbiB3aGVyZSB0aGUgJydjZSd1JycgaXMgcGxhY2VkIGluIGEgdmVyeSB1bmNvbnZlbnRpb25h bCBwbGFjZTo8YnIgLz4nJ21pIC5lIG5haSBkbyBja2FqaSBsbyBrYSBsbyBicnVuYSBjdSBqYm9j cmUnJywgd2hlcmVpbiB0aGUgJydjZSd1JycgaXMgZWxpZGVkLCBidXQgbW9zdCBwcm9iYWJseSBo aWRpbmcgaW4gJydsbyBicnVuYSBiZSBjZSd1JycsIHRoZXJlZm9yZSBtZWFuaW5nICZxdW90O0kg YW5kIG5vdCB5b3UgaXMgY2hhcmFjdGVyaXplZCBieSB0aGUgc2VsYnJpOiAmcXVvdDtUaGUgYnJv dGhlciBvZiBYIGlzIGdvb2QgYSBMb2piYW4mcXVvdDsmcXVvdDssIHdoaWNoIGlzIHRoZSBzYW1l IGFzICZxdW90O0kgaGF2ZSBhIGJyb3RoZXIgd2hvJ3MgZ29vZCBhdCBMb2piYW4sIGJ1dCB5b3Ug ZG9uJ3QmcXVvdDsuCisgJydsbyBrYSBjZSd1IHBhbnppIGxhIC5tYWlrLicnIC0gJnF1b3Q7VGhl IHNlbGJyaTogJnF1b3Q7WCBpcyBhIGNoaWxkIG9mIE1pa2UmcXVvdDsmcXVvdDsgPSAmcXVvdDtC ZWluZyBNaWtlJ3MgY2hpbGQmcXVvdDssIHZlcnN1czxiciAvPicnbG8ga2EgbGEgLm1haWsuIHBh bnppIGNlJ3UnJyAtICZxdW90O1RoZSBzZWxicmk6ICZxdW90O01pa2UgaXMgYSBjaGlsZCBvZiBY JnF1b3Q7JnF1b3Q7ID0gJnF1b3Q7QmVpbmcgdGhlIHBhcmVudCBvZiBNaWtlJnF1b3Q7LjxiciAv Pk9uZSBjb3VsZCBldmVuIGltYWdpbmUgYSBzdGF0ZW1lbnQgaW4gd2hlcmUgdGhlICcnY2UndScn IGlzIHBsYWNlZCBpbiBhIHZlcnkgdW5jb252ZW50aW9uYWwgcGxhY2UsIHRoYXQgbm9uZXRoZWxl c3MgaXMgcXVpdGUgaW50dWl0aXZlOjxiciAvPicnbWkgLmUgbmFpIGRvIGNrYWppIGxvIGthIGxv IGJydW5hIGN1IGpib2NyZScnLCB3aGVyZWluIHRoZSAnJ2NlJ3UnJyBpcyBlbGlkZWQsIGJ1dCBt b3N0IHByb2JhYmx5IGhpZGluZyBpbiAnJ2xvIGJydW5hIGJlIGNlJ3UnJywgdGhlcmVmb3JlIG1l YW5pbmcgJnF1b3Q7SSBhbmQgbm90IHlvdSBpcyBjaGFyYWN0ZXJpemVkIGJ5IHRoZSBzZWxicmk6 ICZxdW90O1RoZSBicm90aGVyIG9mIFggaXMgZ29vZCBhdCBMb2piYW4mcXVvdDsmcXVvdDssIHdo aWNoIGlzIHRoZSBzYW1lIGFzICZxdW90O0kgaGF2ZSBhIGJyb3RoZXIgd2hvJ3MgZ29vZCBhdCBM b2piYW4sIGJ1dCB5b3UgZG9uJ3QmcXVvdDsuCgotIE9uZSBjYW4gbWFrZSBhIGZ1bmN0aW9uLCBs aWtlIGEga2EtYWJzdHJhY3Rpb24sIGFuZCBmaWxsIGFsbCBzdW10aSBwbGFjZXMsIGxlYXZpbmcg bm8gcGxhY2UgZm9yIGEgJydjZSd1JycuIFRoZSByZXN1bHRpbmcgYnJpZGkgYXJlIHdlaXJkOjxi ciAvPicnbWkga2FrbmUgbG8ga2EgbWkgbWVya28gbG8gbWkgYmFuZ3UnJyAtICZxdW90O0kgY2Fu IG15IGxhbmd1YWdlIGlzIEFtZXJpY2FuJnF1b3Q7LiBUaGlzIGlzIGNsZWFybHkgYSB0eXBlIGVy cm9yLiBTb21lIHBlb3BsZSByZWdhcmQgZnVuY3Rpb25zIHdpdGhvdXQgYW55ICcnY2UndScnIHRv IGJlIGVxdWl2YWxlbnQgdG8gYnJpZGkgYWJzdHJhY3Rpb25zLCBzbyB0aGF0PGJyIC8+JydtaSBr cmljaSBsbyBrYSBtaSB2cnVkZSBsYSBjZXZuaScnIGlzIHRoZSBzYW1lIGFzICcnbWkga3JpY2kg bG8gZHUndSBtaSB2cnVkZSBsYSBjZXZuaScnIC0gJnF1b3Q7SSBiZWxpZXZlIHRoYXQgSSBhbSBn b29kIGluIHRoZSBleWVzIG9mIEdvZCZxdW90OywgYW5kIGlzIGp1c3QgYXMgZ29vZCBhIHNlbnRl bmNlIGluIExvamJhbiBhcyBpdHMgdHJhbnNsYXRpb24gaXMgaW4gRW5nbGlzaC4gSW4gbXkgb3Bp bmlvbiwgb25lIHNob3VsZCByZWZyYWluIGZyb20gdXNpbmcgYW55IG9mIHRoZSBmdW5jdGlvbiBh YnN0cmFjdG9ycyBpZiBvbmUgZG9lc24ndCB3YW50IHRvIHVzZSBhIGZ1bmN0aW9uLiBJZiB5b3Ug d2FubmEgdXNlICcnZHUndScnLCB1c2UgJydkdSd1JycuCisgT25lIGNhbiBtYWtlIGEgZnVuY3Rp b24sIGxpa2UgYSAmcXVvdDtrYSZxdW90Oy1hYnN0cmFjdGlvbiwgYW5kIGZpbGwgYWxsIHN1bXRp IHBsYWNlcywgbGVhdmluZyBubyBwbGFjZSBmb3IgYSAnJ2NlJ3UnJy4gVGhlIHJlc3VsdGluZyBi cmlkaSBhcmUgd2VpcmQ6PGJyIC8+JydtaSBrYWtuZSBsbyBrYSBtaSBtZXJrbyBsbyBtaSBiYW5n dScnIC0gJnF1b3Q7SSBjYW4gbXkgbGFuZ3VhZ2UgaXMgQW1lcmljYW4mcXVvdDsuIFRoaXMgaXMg Y2xlYXJseSBhIHR5cGUgZXJyb3IuIFNvbWUgcGVvcGxlIHJlZ2FyZCBmdW5jdGlvbnMgd2l0aG91 dCBhbnkgJydjZSd1JycgdG8gYmUgZXF1aXZhbGVudCB0byBicmlkaSBhYnN0cmFjdGlvbnMsIHNv IHRoYXQ6PGJyIC8+JydtaSBrcmljaSBsbyBrYSBtaSB2cnVkZSBsYSBjZXZuaScnIGlzIHRoZSBz YW1lIGFzICcnbWkga3JpY2kgbG8gZHUndSBtaSB2cnVkZSBsYSBjZXZuaScnIC0gJnF1b3Q7SSBi ZWxpZXZlIHRoYXQgSSBhbSBnb29kIGluIHRoZSBleWVzIG9mIEdvZCZxdW90OywgYW5kIGlzIGp1 c3QgYXMgZ29vZCBhIHNlbnRlbmNlIGluIExvamJhbiBhcyBpdHMgdHJhbnNsYXRpb24gaXMgaW4g RW5nbGlzaC4gSW4gbXkgb3Bpbmlvbiwgb25lIHNob3VsZCByZWZyYWluIGZyb20gdXNpbmcgYW55 IG9mIHRoZSBmdW5jdGlvbiBhYnN0cmFjdG9ycyBpZiBvbmUgZG9lc24ndCB3YW50IHRvIHVzZSBh IGZ1bmN0aW9uLiBJZiB5b3UgbWVhbiAnJ2R1J3UnJywgdXNlICcnZHUndScnLgoKLSBUaGUgb3Ro ZXIgYWJzdHJhY3RvciB3aGljaCBjbGVhcmx5IGNhbiBwcm92aWRlIGEgZnVuY3Rpb24gaXMgJydu aScnLiBMaWtlICcna2EnJywgYSAnJ2NlJ3UnJyBjYW4gYmUgcGxhY2VkIGluIGEgJyduaScnIGFi c3RyYWN0aW9uLCBidXQgaXQncyBub3QgbWFuZGF0b3J5LiBUaHVzLCBpZiBubyAnJ2NlJ3UnJyBp cyBwbGFjZWQgaW4gYSAnJ25pJyctYWJzdHJhY3Rpb24sIG9uZSBjYW5ub3QgYXNzdW1lIHRoYXQg aXQncyBlbGlkZWQgLSBpdCBtaWdodCBzaW1wbHkgbm90IGJlIHRoZXJlLiBJZiB0aGUgbWFpbiBz ZWxicmkgaXMgbm90IG9uZSB3aGljaCBjbGVhcmx5IG5lZWRzIHRvIGZpbGwgYSAnJ2NlJ3UnJy1w bGFjZSwgbGlrZSAnJ3ptYWR1JycgYW5kICcnbWxlY2EnJywgdGhlcmUncyBwcm9iYWJseSBubyAn J2NlJ3UnJyBhdCBhbGwuCisgVGhlIG90aGVyIGFic3RyYWN0b3Igd2hpY2ggY2xlYXJseSBjYW4g cHJvdmlkZSBhIGZ1bmN0aW9uIGlzICcnbmknJy4gTGlrZSAnJ2thJycsIGEgJydjZSd1JycgY2Fu IGJlIHBsYWNlZCBpbiBhICcnbmknJyBhYnN0cmFjdGlvbiwgYnV0IHVubGlrZSB3aXRoIGthLCB1 c2luZyBhIGNldSB3aXRoIG5pIGlzIG5vdCBtYW5kYXRvcnkuIFRodXMsIGlmIG5vICcnY2UndScn IGlzIHBsYWNlZCBpbiBhICcnbmknJy1hYnN0cmFjdGlvbiwgb25lIGNhbm5vdCBhc3N1bWUgdGhh dCBpdCdzIGVsaWRlZCAtIGl0IG1pZ2h0IHNpbXBseSBub3QgYmUgdGhlcmUuIElmIHRoZSBtYWlu IHNlbGJyaSBpcyBub3Qgb25lIHdoaWNoIGNsZWFybHkgdGVsbHMgdXMgaG93IHRvIGZpbGwgYSAn J2NlJ3UnJy1wbGFjZSwgc3VjaCBhcyAnJ3ptYWR1Jycgb3IgJydtbGVjYScnLCB0aGVyZSdzIHBy b2JhYmx5IG5vICcnY2UndScnIGF0IGFsbC4KSW4gYWxsIG90aGVyIGFzcGVjdHMsIHRoZSB3YXkg JydjZSd1Jycgd29ya3Mgd2l0aGluIHRoZSBhYnN0cmFjdGlvbiBpcyBqdXN0IGxpa2UgJydrYScn LCBzbyB0aGUgZGlmZmVyZW5jZSBpcyBwdXJlbHkgc2VtYW50aWNhbC4gV2hlcmVhcyAnJ2thJycg Y3JlYXRlcyBhIHNlbGJyaSwgJyduaScnIGNyZWF0ZXMgYW4gYW1vdW50LiBIZXJlJ3MgdGhlIGRl ZmluaXRpb24gb2YgdGhlIHdvcmQ6CgotIF9fJyduaScnX186IEFtb3VudCBhYnN0cmFjdGlvbjog eDEgaXMgdGhlIGFtb3VudCBvZiBCUklESSBvbiB0aGUgc2NhbGUgeDI8YnIgLz5CZWluZyBmYW1p bGlhciB3aXRoICcna2EnJywgaXRzIHVzYWdlIHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQ6PGJy IC8+JydtaSB6bWFkdSBkbyBsbyBuaSB7Y2UndX0geGVrcmknJyAtICZxdW90O0kgZXhjZWVkIHlv dSBpbiBhbW91bnQ6ICZxdW90O1ggaXMgYmxhY2smcXVvdDssIG9yOiAmcXVvdDtJJ20gYmxhY2tl ciB0aGFuIHlvdS4mcXVvdDsgQXMgc3RhdGVkIGluIGxlc3NvbiB0d2VudHktZWlnaHQsIHRoaXMg bWFrZXMgdG90YWwgc2Vuc2UgYmVjYXVzZSB0aGUgYnJpZ2h0bmVzcyBvZiBvdXIgc2tpbiBjb3Vs ZCBiZSBtZWFzdXJlZCBieSBhIGNhbWVyYS4gSG93ZXZlciwgc29tZSBwZW9wbGUgd2lsbCBub3Qg YWNjZXB0OjxiciAvPicnbGUgbmkgbWkgcGVuZG8gZG8nJyAtICZxdW90O0hvdyBtdWNoIHdlIGFy ZSBmcmllbmRzJnF1b3Q7LiBJIHRoaW5rIHVzaW5nIGFtb3VudHMgaW4gdGhpcyB3YXkgaXMgZmlu ZSwgYnV0IHRoYXQgaXMgYW4gaXNzdWUgb2YgYSBwaGlsb3NvcGhpY2FsIGRlYmF0ZSBJIHN3ZXB0 IHVuZGVyIHRoZSBjYXJwZXQgdHdvIGxlc3NvbnMgYWdvLCBhbmQgSSdtIG5vdCBnb25uYSB0YWtl IGl0IG9uIGhlcmUuCisgX18nJ25pJydfXzogQW1vdW50IGFic3RyYWN0aW9uOiB4MSBpcyB0aGUg YW1vdW50IG9mIEJSSURJIG9uIHNjYWxlIHgyPGJyIC8+QmVpbmcgZmFtaWxpYXIgd2l0aCAnJ2th JycsIHRoZSB1c2FnZSBvZiBuaSBzaG91bGQgYmUgc3RyYWlnaHRmb3J3YXJkOjxiciAvPicnbWkg em1hZHUgZG8gbG8gbmkge2NlJ3V9IHhla3JpJycgLSAmcXVvdDtJIGV4Y2VlZCB5b3UgaW4gYW1v dW50OiAmcXVvdDtYIGlzIGJsYWNrJnF1b3Q7JnF1b3Q7LCBvcjogJnF1b3Q7SSdtIGJsYWNrZXIg dGhhbiB5b3UuJnF1b3Q7IEFzIHN0YXRlZCBpbiBsZXNzb24gdHdlbnR5LWVpZ2h0LCBhbGwgYWdy ZWUgdGhhdCB0aGlzIG1ha2VzIHRvdGFsIHNlbnNlIGJlY2F1c2UgdGhlIGJyaWdodG5lc3Mgb2Yg b25lJ3Mgc2tpbiBjb3VsZCBiZSBtZWFzdXJlZCBieSBhIGNhbWVyYS4gSG93ZXZlciwgc29tZSBw ZW9wbGUgd2lsbCBub3QgYWNjZXB0IHRoZSB1bm1lYXN1cmFibGU6PGJyIC8+JydtaSB6bWFkdSBk byBsbyBuaSBtaSBwZW5kbyBsYSAubWFpay4nJyAtICZxdW90O0kgYW0gbW9yZSBvZiBhIGZyaWVu ZCBvZiBNaWtlIHRoYW4geW91IGFyZSZxdW90Oy4gSSB0aGluayB1c2luZyBhbW91bnRzIHRvIHF1 YW50aWZ5IHRoZSB1bm1lYXN1cmFibGUgaXMgZmluZSwgYnV0IHRoYXQgaXMgYW4gaXNzdWUgSSBz d2VwdCB1bmRlciB0aGUgY2FycGV0IHR3byBsZXNzb25zIGFnbywgYW5kIEknbSBub3QgZ29ubmEg dGFrZSBpdCBvbiBoZXJlLgoKLSBJdCdzIGFic29sdXRlbHkgY2xlYXIsIGhvd2V2ZXIsIHRoYXQg aXQncyB3cm9uZyB0byB1c2UgJyduaScnIGFzIGEgd2F5IHRvIGVudW1lcmF0ZSBob3cgbWFueSBv YmplY3RzIGZpdCBhIHNlbGJyaSAtIGl0J3MgYWx3YXlzIGFib3V0IHRvIHdoaWNoIGV4dGVudCBj ZXJ0YWluIHN1bXRpIGZpdCBhIHNlbGJyaS4gVGh1czogCisgSXQncyBhYnNvbHV0ZWx5IGNsZWFy LCBob3dldmVyLCB0aGF0IGl0J3Mgd3JvbmcgdG8gdXNlICcnbmknJyBhcyBhIHdheSB0byBlbnVt ZXJhdGUgaG93IG1hbnkgb2JqZWN0cyBmaXQgYSBzZWxicmkgLSBpdCdzIGFsd2F5cyBhYm91dCB0 byB3aGljaCBleHRlbnQgY2VydGFpbiBzdW10aSBmaXQgYSBzZWxicmkuIFRodXM6CicnZG8gbWxl Y2EgbWkgbG8gbmkgcGFuemkgY2UndScnIG1lYW5zICJZb3UgYXJlIGxlc3Mgb2YgYSBwYXJlbnQg dGhhbiBJIGFtIiwgYW5kIG5vdCAiWW91IGhhdmUgZmV3ZXIgY2hpbGRyZW4gdGhhbiBtZSIuCklu IGNhc2UgeW91J3JlIGN1cmlvdXMgKEkgd2FzKSwgdGhlIGp1ZnJhICcnem8nZSBwYW56aSBjZSd1 JycgaW4gdGhlIHByZXZpb3VzIGV4YW1wbGUgYWN0dWFsbHkgcmVmZXJzIHRvIHR3byBkaXN0aW5j dCBicmlkaSwgYmVjYXVzZSB0aGUgc2VsYnJpIGZpbGxzIHRoZSBvcGVuICcnY2UndScnLXBsYWNl IHR3aWNlLCBvbmNlIGZvciAnJ2RvJycsIGFuZCBvbmNlIGZvciAnJ21pJycsIG1ha2luZyB0aGUg dHdvIHN1Yi1icmlkaTogJyd6bydlIHBhbnppIGRvJycgYW5kICcnem8nZSBwYW56aSBtaScnLiBT aW5jZSB0aGVzZSB0d28gYnJpZGkgYXJlIGNvbnNpZGVyZWQgZGlmZmVyZW50LCB0aGUgJyd6bydl JycgbmVlZCBub3QgcmVmZXIgdG8gdGhlIHNhbWUgb2JqZWN0LgoKLSBXaGF0IGRvZXMgaXQgbWVh biBpZiB5b3UgZG9uJ3QgdXNlIGEgJydjZSd1JycgaW5zaWRlIGEgJyduaScnLWFic3RyYWN0aW9u PyBXZWxsLCB0aGVuIHRoZSBtYWluIHNlbGJyaSBjYW4ndCBmaWxsIGFueSBvZiB0aGUgc3VtdGkg aW4gdGhlIGFic3RyYWN0aW9uLCBzbyB0aGVyZSdzIGEgZ29vZCBjaGFuY2UgaXQgd29uJ3QgbWFr ZSBhbnkgc2Vuc2UsIGp1c3QgbGlrZSAnJ2thJyctYWJzdHJhY3Rpb25zLiBIb3dldmVyLCBpZiAn J25pJycgaXRzZWxmIGlzIHRoZSBtYWluIHNlbGJyaSwgaXQncyB0b3RhbGx5IGZpbmUgdG8gYXZv aWQgdXNpbmcgYW55ICcnY2UndScnIGF0IGFsbDo8YnIgLz4nJ2xpIGR1J2UgbmkgZG8gbmVsY2kg bG8gdmFuanUnJyAtICZxdW90O1lvdSBsaWtlIHdpbmUgdG9vIG11Y2gmcXVvdDsuCisgV2hhdCBk b2VzIGl0IG1lYW4gaWYgeW91IGRvbid0IHVzZSBhICcnY2UndScnIGluc2lkZSBhICcnbmknJy1h YnN0cmFjdGlvbj8gV2VsbCwgdGhlbiB0aGUgbWFpbiBzZWxicmkgY2FuJ3QgZmlsbCBhbnkgb2Yg dGhlIHN1bXRpIGluIHRoZSBhYnN0cmFjdGlvbiwgc28gd2hlbiB1c2luZyBzZWxicmkgbGlrZSB6 bWFkdSBhbmQgbWxlY2EsIHRoZXJlJ3MgYSBnb29kIGNoYW5jZSBpdCB3b24ndCBtYWtlIGFueSBz ZW5zZS4gSG93ZXZlciwgaWYgJyduaScnIGl0c2VsZiBpcyB0aGUgbWFpbiBzZWxicmksIGl0J3Mg dG90YWxseSBmaW5lIHRvIGF2b2lkIHVzaW5nIGFueSAnJ2NlJ3UnJyBhdCBhbGw6PGJyIC8+Jyds aSBkdSdlIG5pIGRvIG5lbGNpIGxvIHZhbmp1JycgLSAmcXVvdDtZb3UgbGlrZSB3aW5lIHRvbyBt dWNoJnF1b3Q7CgpUaGUgbGFzdCBvZiB0aGUgYWJzdHJhY3RvcnMgd2UgdHJlYXQgaW4gdGhpcyBs ZXNzb24gaXMgJydzaSdvJycsIHRoZSBjb25jZXB0IGFic3RyYWN0b3IuICcnc2knbycnIG1heSBi ZSBjb25zaWRlcmVkIGEgZnVuY3Rpb24sIG9yIGl0IG1heSBub3QgYmUgY29uc2lkZXJlZCBhIGZ1 bmN0aW9uLiBBICcnc2knbycnLWFic3RyYWN0aW9uIGNlcnRhaW5seSBjb250YWlucyBhICcnY2Un dScnIC0gaW4gZmFjdCwgdW5kZXIgdGhlIHVuZGVyc3RhbmRpbmcgd2hpY2ggSSBhbSB0ZWFjaGlu ZywgYSAnJ3NpJ28nJy1hYnN0cmFjdGlvbiBhbHdheXMgY29udGFpbnMgbm90aGluZyBidXQgJydj ZSd1JydzISBUaGVzZSAnJ2NlJ3UnJ3MsIHVubGlrZSB0aG9zZSBvZiAnJ2thJycgb3IgJyduaScn LCByZW1haW4gb3BlbiBhbmQgY2Fubm90IGJlIGZpbGxlZCBieSBhbnkgc2VsYnJpLiBJbiBvdGhl ciB3b3JkcywgdGhlIGZ1bmN0aW9uIGNhbm5vdCBiZSBhcHBsaWVkIHRvIGFueXRoaW5nLCB3aGlj aCBpcyB3aGF0IG1ha2VzIGl0IGEgbWF5YmUtZnVuY3Rpb24uCicnX19zaSdvX18nJyBDb25jZXB0 IGFic3RyYWN0b3I6IHgxIGlzIHgyJ3MgY29uY2VwdCBvZiBCUklESQpMZXQncyBoYXZlIGEgZmV3 IGV4YW1wbGVzOgotICcnbG8gc2knbyB4ZWJuaScnLCB3aGljaCwgYmVjYXVzZSBhbGwgdGhlIHN1 bXRpIHBsYWNlcyBhcmUgZmlsbGVkIHdpdGggJydjZSd1JycgaXMgZXF1aXZhbGVudCB0bzogPGJy IC8+JydsbyBzaSdvIGNlJ3UgeGVibmkgY2UndScnIC0gJnF1b3Q7VGhlIGNvbmNlcHQgb2Y6ICZx dW90O1ggaGF0ZXMgWSZxdW90OyZxdW90OyA9ICZxdW90O0hhdGUgaXRzZWxmJnF1b3Q7CisgJyds byBzaSdvIHhlYm5pJycsIHdoaWNoLCBiZWNhdXNlIGFsbCB0aGUgc3VtdGkgcGxhY2VzIGFyZSBm aWxsZWQgd2l0aCAnJ2NlJ3UnJyBpcyBlcXVpdmFsZW50IHRvOjxiciAvPicnbG8gc2knbyBjZSd1 IHhlYm5pIGNlJ3UnJyAtICZxdW90O1RoZSBjb25jZXB0IG9mOiAmcXVvdDtYIGhhdGVzIFkmcXVv dDsmcXVvdDsgPSAmcXVvdDtUaGUgY29uY2VwdCBvZiBoYXRlJnF1b3Q7ID0gSGF0ZTxiciAvPjxi ciAvPlRoZSBteXRoaWNhbCBjcmVhdHVyZXMgQmFscm9nIGZyb20gTG9yZCBvZiB0aGUgUmluZ3Mg YXJlIGRlc2NyaWJlZCBhcyBiZWluZyAmcXVvdDtzaGFkb3cgYW5kIGZsYW1lJnF1b3Q7LCB0aGUg cG9lc3kgb2Ygd2hpY2ggYXBwZWFycyBtdWNoIHN0cm9uZ2VyIGluIExvamJhbjogJydsYSBiYWxy b2cgY3Ugc2knbyBmYWdyaSBqb2kgbWFua3UnJyBpcyBhc3NlcnRpbmcgbm90IG9ubHkgdGhhdCBp dHMgbWFkZSBvdXQgb2Ygc2hhZG93IGFuZCBmbGFtZSwgYnV0IGFsc28gc3VnZ2VzdGluZyB0aGF0 IGl0cyB0aGUgcHJvdG90eXBpY2FsIFNoYWRvdyBhbmQgRmxhbWUsIGZyb20gd2hpY2ggYWxsIG90 aGVyIHNoYWRvdyBhbmQgZmxhbWUgZGVyaXZlcy4KCi0gVGhlIG15dGhpY2FsIGNyZWF0dXJlIEJh bHJvZyBmcm9tIExvcmQgb2YgdGhlIFJpbmdzIGlzIGRlc2NyaWJlZCBhcyBiZWluZyAmcXVvdDtz aGFkb3cgYW5kIGZsYW1lJnF1b3Q7LCB0aGUgcG9lc3kgb2Ygd2hpY2ggYXBwZWFycyBtdWNoIHN0 cm9uZ2VyIGluIExvamJhbjogJydsbyBiYWxyb2cgY3Ugc2knbyBmYWdyaSBqb2kgbWFua3UnJyBp cyBhc3NlcnRpbmcgbm90IG9ubHkgdGhhdCB0aGV5J3JlIG1hZGUgb3V0IG9mIHNoYWRvdyBhbmQg ZmxhbWUsIGJ1dCBhbHNvIHN1Z2dlc3RpbmcgdGhhdCB0aGV5IGFyZSB0aGUgcHJvdG9weXRpY2Fs IFNoYWRvdyBhbmQgRmxhbWUsIGZyb20gd2hpY2ggYWxsIG90aGVyIHNoYWRvdyBhbmQgZmxhbWUg ZGVyaXZlcy48YnIgLz5FdHltb2xvZ2ljYWxseSwgc2knbyBkZXJpdmVzIGZyb20gc2lkYm8sICZx dW90O2lkZWEmcXVvdDssIGJ1dCBpbiBjdXJyZW50IHVzYWdlLCBhbiBpZGVhIGlzIGNvbnNpZGVy ZWQgYSB0ZXh0IGFuZCBub3QgYSBjb25jZXB0LgorIEZvciBnb29kIG1lYXN1cmUsIGl0IHNob3Vs ZCBiZSBzdGF0ZWQgdGhhdCBldHltb2xvZ2ljYWxseSwgJnF1b3Q7c2knbyZxdW90OyBkZXJpdmVz IGZyb20gJnF1b3Q7c2lkYm8mcXVvdDssICZxdW90O2lkZWEmcXVvdDssIGJ1dCBpbiBjdXJyZW50 IHVzYWdlIGFuIGlkZWEgaXMgY29uc2lkZXJlZCBhIHRleHQgYW5kIG5vdCBhIGNvbmNlcHQuCgot IFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHRocmVlIGFic3RyYWN0b3JzICcna2EnJywgJydu aScnIGFuZCAnJ3NpJ28nJyBjYW4gYmUgaWxsdXN0cmF0ZWQgd2l0aCBhIGZldyBtb3JlIGV4YW1w bGVzIGZvciBjb21wYXJpc2F0aW9uOgorIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHRocmVl IGFic3RyYWN0b3JzICcna2EnJywgJyduaScnIGFuZCAnJ3NpJ28nJyBjYW4gYmUgaWxsdXN0cmF0 ZWQgd2l0aCBhIGZldyBtb3JlIGV4YW1wbGVzIGZvciBjb21wYXJpc29uOgonJ2xvIGthIGNyaW5v IGN1IHBsdWthIG1pJycgLSAiQmVpbmcgZ3JlZW4gcGxlYXNlcyBtZSIKJydsbyBuaSBjcmlubyBj dSBwbHVrYSBtaScnICAtICJIb3cgbXVjaCB7em8nZX0gaXMgZ3JlZW4gcGxlYXNlcyBtZSIgKG5v ICcnY2UndScnISkKCgoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqClRoZSBuZXcgcGFnZSBjb250ZW50IGZvbGxvd3MgYmVsb3cuCioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CgohTG9qYmFuIFdhdmUgTGVzc29ucyBDb250aW51ZWQgKHBhcnQgdGhyZWUpOgoKISEhTWFkZSBi eSBsYSBrbGFrdSB3aXRoIGhlbHAgZnJvbSB2YXJpb3VzIGxvamJhbmlzdHMuIEJhc2VkIG9uIHRo ZSB3b3JrIG9mIGxhIC5rcmliYWNyLiBTcHJpbmcgMjAxMy4KCgoKV2VsY29tZSB0byB0aGUgdGhp cmQgcGFydCBvZiBUaGUgV2F2ZWxlc3NvbnNjb250aW51ZWQuIElmIHlvdSB3YW50IHRvIGdvIGJh Y2sgdG8gKCh3YXZlbGVzc29uc2NvbnRpbnVlZHx0aGUgZmlyc3QgcGFydCkpIG9yICgod2F2ZWxl c3NvbnNjb250aW51ZWRwMnx0aGUgc2Vjb25kIHBhcnQpKSwganVzdCBjbGljayBvbiB0aGUgd29y ZHMgcmVwcmVzZW50aW5nIHRoZW0gaW4gdGhpcyBzZW50ZW5jZS4gVGhpcyB0aGlyZCBwYXJ0IGlz IGFib3V0IGFkdmFuY2VkIExvamJhbi4gVGhlIExvamJhbiBpbiB0aGlzIHBhcnQgaXMgcmFyZWx5 IHJlbGV2YW50IHdoZW4gc3BlYWtpbmcgTG9qYmFuIGluIG5vcm1hbCBjb250ZXh0cywgYnV0IGl0 IHBvcHMgdXAgcXVpdGUgb2Z0ZW4gd2hlbiBzcGVha2luZyBhYm91dCBsYW5ndWFnZSBhbmQgbG9n aWMuIAoKVGhlc2UgY29ybmVycyBvZiBMb2piYW4gaXMgZm9yIHRoZSBtb3N0IHBhcnQgZXhwZXJp bWVudGFsLCBuZXcgb3IgY29tcGxleCwgc28geW91IHNob3VsZCBleHBlY3QgYSBsb3Qgb2YgY2hh bmdpbmcgZGVmaW5pdGlvbnMsIG91dGRhdGVkIGRlZmluaXRpb25zLCBkaXNhZ3JlZW1lbnRzIGFu ZCBtaXN1bmRlcnN0YW5kaW5ncyBvbiB0aGUgcGFydCBvZiB0aGUgYXV0aG9yIG9mIHRoaXMgdGV4 dC4gU29ycnkgYWJvdXQgdGhhdC4KCgoKISFMb2piYW4gTGVzc29ucyAtIExlc3NvbiB0d2VudHkt c2V2ZW4gKGxvamJhbiBsb2dpYzogZGEsIGJ1J2EsIHpvJ3UgYW5kIHRlcm1zKQoKVGhlIHN0YXRl ZCB0b3BpYyBvZiB0aGlzIGxlc3NvbiBuZWVkcyBzb21lIGp1c3RpZmljYXRpb246IFRoaXMgbGVz c29uIGlzIG5vdCByZWFsbHkgYWJvdXQgaG93IGRvIHRvIGxvZ2ljIGluIExvamJhbiwgc2luY2Ug Zmlyc3RseSwgbG9naWMgaXMgcHJlc3VtYWJseSB0aGUgc2FtZSBpbiBhbGwgbGFuZ3VhZ2VzLCBh bmQgc2Vjb25kbHksIGFjdHVhbGx5IHRlYWNoaW5nIGxvZ2ljIHdvdWxkIGJlIHRvdGFsbHkgaW1w cmFjdGljYWwgaW4gb25lIHNpbmdsZSBsZXNzb24uIFJhdGhlciwgdGhpcyBsZXNzb24gZXhwbGFp bnMgc29tZSBjb25zdHJ1Y3RzIHdoaWNoIHJlc2VtYmxlIHRob3NlIHdoaWNoIGxvZ2ljaWFucyB1 c2UuIEl0IHR1cm5zIG91dCB0aGV5IGhhdmUgYSByZW1hcmthYmxlIHdpZGUgcmFuZ2Ugb2YgdXNl cyBpbiBMb2piYW4uCgpHZXR0aW5nIGludm9sdmVkIGluIHRoZSBtb3JlIG9ic2N1cmUgZGV0YWls cyBvZiB0aGVzZSBsb2dpY2FsIGNvbnN0cnVjdHMgY2FuIGJlIG1pbmQtd2FycGluZ2x5IGRpZmZp Y3VsdCwgYW5kIHRoZXJlIHdpbGwgYWx3YXlzIGJlIHNvbWUgZGlzYWdyZWVtZW50IGluIHRoZSBj b3JuZXJzIG9mIHRoaXMgcGFydCBvZiB0aGUgbGFuZ3VhZ2UuCgpMZWFybmluZyB0aGVzZSBsb2dp Y2FsIGNvbnN0cnVjdHMgcmVxdWlyZXMgb25lIHRvIGxlYXJuIGEgYml0IGFib3V0IGNvbnN0cnVj dHMgd2hpY2ggYXJlIG5vdCBsb2dpY2FsIGluIG5hdHVyZS4gTGV0J3MgYmVnaW4gd2l0aCAnJ3pv J3UnJwoKX18nJ3pvJ3UnJ19fIFNlcGFyYXRlcyBwcmVuZXggZnJvbSBicmlkaQoKQmVmb3JlIGFu eSAnJ3pvJ3UnJyBpcyB0aGUgcHJlbmV4LCBhZnRlciAnJ3pvJ3UnJyBpcyB0aGUgYnJpZGkuIElu Zm9ybWFsbHksIGEgcHJlbmV4IGlzIGEgcGxhY2UgaW4gZnJvbnQgb2YgdGhlIGJyaWRpLCB3aGVy ZSB5b3UgcHV0IGEgYnVuY2ggb2YgdGVybXMuIEEgdGVybSBpcyBhbiBFbmdsaXNoIHdvcmQgZ2l2 ZW4gdG8gc29tZSBraW5kcyBvZiBMb2piYW4gY29uc3RydWN0czogU3VtdGksIHN1bXRjaXRhIHdp dGggb3Igd2l0aG91dCBzdW10aSBhdHRhY2hlZCwgJyduYSBrdScnIGFuZCBhbiBhYm9taW5hdGlv biBjYWxsZWQgX190ZXJtc2V0c19fLCB3aGljaCBJIHJlZnVzZSB0byBpbmNsdWRlIGluIHRoZXNl IGxlc3NvbnMuIFRoZSBwcmVuZXggaXMgbm90IHBhcnQgb2YgdGhlIGJyaWRpLCBidXQgYW55IHRl cm1zIHB1dCBpbnNpZGUgaXQgZ2l2ZXMgdXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGJyaWRpLiBP bmUgY2FuLCBmb3IgZXhhbXBsZSwgdXNlIGl0IHRvIHN0YXRlIGEgdG9waWMgYXMgc2hvd24gdGh1 czoKCicnbG8gcGFtcGUnbyBqZSBuYWkgc3Blbmkgem8ndSBtaSBuYSB6YW5ydScnIC0gIkNvbmNl cm5pbmcgbG92ZXJzIHdobyBhcmUgbm90IHNwb3VzZXM6IEkgZG8gbm90IGFwcHJvdmUiLiBUaGUg YmVuZWZpdHMgb2Yga2luZCBvZiBzZW50ZW5jZSBzdHJ1Y3R1cmluZyBpcyBxdWVzdGlvbmFibGUs IGJ1dCBpdCdzIGFsd2F5cyBnb29kIHRvIGhhdmUgc29tZSB2YXJpYXRpb24gdG8gcGxheSB3aXRo LiBGdXJ0aGVybW9yZSwgY29uc3RydWN0aW5nIHNlbnRlbmNlcyB0aGlzIHdheSByZXNlbWJsZXMg TWFuZGFyaW4gKGFuZCBvdGhlciBsYW5ndWFnZXMpIGNsb3NlbHksIG1lYW5pbmcgaXQgbWlnaHQg c2VlbSBtb3JlIGludHVpdGl2ZSBmb3Igc3BlYWtlcnMgb2YgdGhhdCBsYW5ndWFnZS4KCl9fJydw YW1wZSdvJydfXyB4MSBpcyBhIGxvdmVyIG9mIHgyCgpfXycnemFucnUnJ19fIHgxIGFwcHJvdmVz IG9mIHgyIChwbGFuLCBldmVudCBvciBhY3Rpb24pCgpPZiBjb3Vyc2UsIHRoZSByZWxhdGlvbiBi ZXR3ZWVuIHRoZSB0ZXJtcyBpbiB0aGUgcHJlbmV4IGFuZCB0aGUgYnJpZGkgaXMgdmFndWUuIE9u ZSBjYW4gaW1hZ2luZSBhbnkgc3VtdGkgaW4gdGhlIHByZW5leCBiZWFyaW5nIHRoZSBzYW1lIHJl bGV2YW5jZSB0byB0aGUgYnJpZGkgYXMgaWYgdGhleSB3ZXJlIHB1dCBpbiB0aGUgYnJpZGkgYWZ0 ZXIgYSAnJ2RvJ2UnJyBzdW10Y2l0YSwgYW5kIGFueSBzdW10Y2l0YSBpbiB0aGUgcHJlbmV4IGRv aW5nIHByZXR0eSBtdWNoIHRoZSBzYW1lIGFzIGlmIHRoZXkgd2VyZSBpbiB0aGUgYnJpZGkuIEl0 IGlzIHF1aXRlIHBvc3NpYmxlIHRvIHB1dCB0ZXJtcyBpbiBwcmVuZXhlcyB3aXRob3V0IGFueSBj bGVhciBoaW50cyBhcyB0byBob3cgdGhlIHRlcm0gbWF5IHJlbGF0ZSB0byB0aGUgYnJpZGk6Cgon J2xlIHZpIGdlcmt1IHpvJ3UgbWkgdG8nZSBuZWxjaSBsbyBjaWRqcnBpdHNhJycgLSAiQ29uY2Vy bmluZyB0aGlzIGRvZyBoZXJlOiBJIGRpc2xpa2UgcGl6emEuIiBJdCBsZWF2ZXMgeW91IGd1ZXNz aW5nIGFib3V0IHRoZSByZWFzb24gZm9yIG1lbnRpb25pbmcgdGhlIGRvZy4KCl9fJydjaWRqcnBp dHNhJydfXyB4MSBpcyBwaXp6YSB3aXRoIHRvcHBpbmcvaW5ncmVkaWVudHMgeDIKCklmIHRoZSBw cmVuZXggY29udGFpbnMgJyduYSBrdScnLCBpdCdzIHByZXR0eSBzdHJhaWdodCBmb3J3YXJkOiBU aGUgZW50aXJlIGJyaWRpIGlzIG5lZ2F0ZWQsIGp1c3QgYXMgaWYgdGhlIGJyaWRpIGl0c2VsZiBi ZWdhbiB3aXRoICcnbmEga3UnJy4KClNvIGhvdyBsb25nIGRvZXMgYSBwcmVuZXggbGFzdD8gSXQg bGFzdHMgdW50aWwgdGhlIGZvbGxvd2luZyBicmlkaSBpcyB0ZXJtaW5hdGVkLiBJZiB0aGF0IGlz IG5vdCBkZXNpcmVkLCB0aGVyZSBhcmUgdHdvIHdheXMgdG8gbWFrZSBpdCBhcHBseSB0byBzZXZl cmFsIGJyaWRpOiBPbmUgaXMgdG8gcHV0IHNvbWUga2luZCBvZiBjb25uZWN0aXZlIGFmdGVyIHRo ZSAnJy5pJycgc2VwYXJhdGluZyB0aGUgYnJpZGksIGFuZCBhbm90aGVyIG1ldGhvZCBpcyB0byBz aW1wbHkgaW5jbHVkZSBhbGwgb2YgdGhlIHRleHQgaW4gJyd0dSdlJycgLi4uICcndHUndScnLWJy YWNrZXRzLiBUaGVzZSBicmFja2V0cyB3b3JrIHByZXR0eSBtdWNoIGJ5IGdsdWluZyBhbGwgdGhl IGJyaWRpIHRvZ2V0aGVyIGFuZCBtYWtlcyBhbGwgc29ydHMgb2YgY29uc3RydWN0IGFwcGx5IHRv IHNldmVyYWwgYnJpZGkuCgoKCk5vdyB0aGF0IHdlIGNvdmVyZWQgJyd6byd1JycsIHRoZSBmaXJz dCAibG9naWNhbCIgd29yZHMgd2UgY2FuIHVzZSBpdCB3aXRoIGFyZSB0aGVzZToKCl9fJydkYScn X18gbG9naWNhbGx5IHF1YW50aWZpZWQgZXhpc3RlbnRpYWwgc3Vta2EnaSAxCgpfXycnZGUnJ19f IGxvZ2ljYWxseSBxdWFudGlmaWVkIGV4aXN0ZW50aWFsIHN1bWthJ2kgMgoKX18nJ2RpJydfXyBs b2dpY2FsbHkgcXVhbnRpZmllZCBleGlzdGVudGlhbCBzdW1rYSdpIDMKClRoZXNlIHdvcmRzIGFy ZSBhbGwgdGhlIHNhbWUsIGxpa2UgdGhlIG1hdGhlbWF0aWNhbCB2YXJpYWJsZXMgeCwgeSBhbmQg ei4gT25jZSB5b3UgaGF2ZSBkZWZpbmVkIHRoZW0sIGhvd2V2ZXIsIHRoZXkga2VlcCByZWZlcmlu ZyB0byB0aGUgc2FtZSB0aGluZy4gVGhlc2Ugd29yZHMgYXJlIGRlZmluZWQgaW4gdGhlIHByZW5l eCBvZiBicmlkaSwgbWVhbmluZyB0aGF0IHdoZW4gdGhlIHByZW5leCBzdG9wIGFwcGx5aW5nLCB0 aGUgZGVmaW5pdGlvbiBvZiB0aGVzZSB0aHJlZSB3b3JkcyBhcmUgY2FuY2VsbGVkLgoKVGhlIHdv cmRzICcnZGEnJywgJydkZScnIGFuZCAnJ2RpJycgY2FuIHJlZmVyIHRvIGxpdGVyYWxseSBhbnkg c3VtdGksIHdoaWNoIG1ha2VzIHRoZW0ga2luZCBvZiB1c2VsZXNzIHVubGVzcyByZXN0cmljdGVk IGluIHNvbWUgd2F5LiBUaGUgZmlyc3QgYW5kIGZvcmVtb3N0IHdheSB0byByZXN0cmljdCB0aGVt IGlzIHRvIHF1YW50aWZ5IHRoZW06IFRoZXkgYXJlIG5vdCBjYWxsZWQgImxvZ2ljYWxseSBxdWFu dGlmaWVkIGV4aXN0ZW50aWFsIHN1bWthJ2kiIGZvciBub3RoaW5nLiBUaGV5IGFyZSBzdW1rYSdp LCB0aGV5IGFyZSBtb3N0IHVzZWZ1bCB3aGVuIHF1YW50aWZpZWQsIGFuZCB0aGV5IGFyZSBleGlz dGVudGlhbC4gV2hhdCBkb2VzIGl0IG1lYW4sIGJlaW5nICJleGlzdGVudGlhbCI/IEl0IG1lYW5z IHRoYXQgaWYgdGhleSBhcmUgdXNlZCwgdGhhdCBpbXBsaWVzIHRoYXQgdGhleSBhY3R1YWxseSBy ZWZlciB0byBzb21ldGhpbmcgd2hpY2ggZXhpc3RzLiBBbiBleGFtcGxlOgoKVGhlIHN0YXRlbWVu dCAnJ3BhIGRhIHpvJ3UgZGEgZ2Vya3UnJyBoYXMgJydwYSBkYScnIGluIHRoZSBwcmVuZXgsIHdo aWNoIG1lYW5zICJDb25jZXJuaW5nIG9uZSBleGlzdGluZyB0aGluZzoiLCBhbmQgdGhlbiAnJ2Rh JycsIG5vdyBkZWZpbmVkLCBpcyB1c2VkIGluIHRoZSBicmlkaSAnJ2RhIGdlcmt1JycuIFRyYW5z bGF0ZWQgdG8gRW5nbGlzaCwgdGhpcyBtZWFuczogIlRoZXJlIGV4aXN0cyBvbmUgdGhpbmcgd2hp Y2ggaXMgYSBkb2ciLiBUaGlzIGlzIG9idmlvdXNseSBmYWxzZSwgdGhlcmUgYXJlIGFyb3VuZCA0 MDAsMDAwLDAwMCBvZiB0aGVtIGluIHRoZSB3b3JsZC4gSWYgJydkYScnIGFuZCBpdHMgc2lzdGVy cyBhcmUgbm90IHF1YW50aWZpZWQsIHRoZSBudW1iZXIgJydzdSdvJycgaXMgdGhlIGRlZmF1bHQu IFRodXMgJydkYSB6byd1IGRhIGdlcmt1JycgbWVhbnMgIlRoZXJlIGV4aXN0IGF0IGxlYXN0IG9u ZSB0aGluZyB3aGljaCBpcyBhIGRvZyIsIHdoaWNoIGlzIHRydWUuIE5vdGljZSBoZXJlLCB0aGF0 IGFueSBxdWFudGlmaWNhdGlvbiBtdXN0IGJlIG1vcmUgb3IgbGVzcyBleGFjdCBpbiBvcmRlciB0 byBiZSB0cnVlOiBPZiBjb3Vyc2Ugb25lIGRvZyBleGlzdHMsIGJ1dCBpbiBMb2piYW4sICcncGEg ZGEgem8ndSBkYSBnZXJrdScnIG1lYW5zIG5vdCBvbmx5IHRoYXQgZG9lcyBvbmUgZG9nIGV4aXN0 cywgYnV0IGFsc28gdGhhdCBubyBtb3JlIHRoYW4gb25lIGRvZXMuIAoKCgpUaGVyZSBhcmUgYSBm ZXcgc3BlY2lmaWMgcnVsZXMgdG8gdGhlc2UgZXhpc3RlbnRpYWwgc3Vta2EnaToKCi0gSWYgdGhl IHF1YW50aWZpZXIgJydybycnIGlzIHVzZWQgYmVmb3JlICcnZGEnJywgaXQgaW5zdGVhZCByZWZl cnMgdG8gImFsbCB3aGljaCBleGlzdHMiLgoKLSBJbXBvcnRhbnRseSwgdGhlIHVzYWdlIG9mIGFu IGV4aXN0ZW50aWFsIHN1bWthJ2kgb25seSBhc3NlcnRzIHRoYXQgc3VjaCBhIHRoaW5nIGV4aXN0 cyBfX2luIHRoZSBkb21haW4gb2YgdHJ1dGggd2hlcmUgaXQncyB1c2VkX18uIFRodXMsIGluIHRo ZSBzZW50ZW5jZSAnJ3NvJ2UgdmVyYmEgY3Uga3JpY2kgbG8gZHUndSBzdSdvIGRhIGNyaWRhJycs IGRvZXMgbm90IHN0YXRlICcnZGEgY3JpZGEnJywgc2luY2UgaXRzICJkb21haW4gb2YgdHJ1dGgi IGlzIG9ubHkgaW5zaWRlIHRoZSBkdSd1LWFic3RyYWN0aW9uLiBHZW5lcmFsbHkgc3BlYWtpbmcs IGFic3RyYWN0aW9ucyBjb250YWluIHRoZWlyIG93biBkb21haW4gb2YgdHJ1dGgsIHNvIHVzaW5n ICcnZGEnJyBhbmQgZnJpZW5kcyBpbnNpZGUgYW4gYWJzdHJhY3Rpb24gaXMgdXN1YWxseSBzYWZl LgoKLSBJZiB0aGUgc2FtZSB2YXJpYWJsZSBpcyBxdWFudGlmaWVkIHNldmVyYWwgdGltZXMsIHRo ZSBmaXJzdCBxdWFudGlmaWNhdGlvbiBpcyB0aGUgb25lIHdoaWNoIHN0aWNrczogQW55IGxhdGVy IHF1YW50aWZpZWQgaW5zdGFuY2Ugb2YgdGhhdCB2YXJpYWJsZSBjYW4gcmVmZXIgb25seSB0byB0 aGluZ3Mgd2hpY2ggYXJlIGFsc28gYmVpbmcgcmVmZXJyZWQgdG8gYnkgdGhlIGZpcnN0IGluc3Rh bmNlIG9mIHRoYXQgdmFyaWFibGUsIGFuZCBhbnkgbGF0ZXIgbm9uLXF1YW50aWZpZWQgaW5zdGFu Y2Ugb2YgdGhhdCB2YXJpYWJsZSB3aWxsIGdhaW4gdGhlIGZpcnN0IHF1YW50aWZpZXIuIFRvIHVz ZSBhbiBleGFtcGxlOiAnJ2NpIGRhIHpvJ3UgcmUgZGEgYmFyZGEgLmlqZSBkYSBwZWx4dScnIG1l YW5zICJUaGVyZSBleGlzdHMgdGhyZWUgdGhpbmdzIHN1Y2ggdGhhdCB0d28gb2YgdGhlbSBhcmUg YmlnIGFuZCBhbGwgdGhyZWUgYXJlIHllbGxvdyIuICcncmUgZGEnJywgYmVpbmcgYWZ0ZXIgJydj aSBkYScnLCBjYW4gb25seSByZWZlciB0byB0d28gb2YgdGhlIGFscmVhZHkgc3RhdGVkIHRocmVl IHRoaW5ncy4gV2hlbiAnJ2RhJycgYXBwZWFycyB3aXRob3V0IGEgcXVhbnRpZmllciwgJydjaScn IGlzIGFzc3VtZWQuCgotIElmIHRoZXJlIGFyZSBzZXZlcmFsIHRlcm1zIGluIHRoZSBwcmVuZXgs IHRoZSB0ZXJtcyBhcmUgYWx3YXlzIHJlYWQgbGVmdCB0byByaWdodC4gU29tZXRpbWVzLCB0aGlz IG1hdHRlcnM6ICcncm8gZGEgZGUgem8ndSBkYSBwcmFtaSBkZScnIG1lYW5zICJDb25jZXJuaW5n IGFsbCB0aGUgdGhpbmdzIFggdGhhdCBleGlzdHMsIGNvbmNlcm5pbmcgYXQgbGVhc3Qgb25lIHRo aW5nIFk6IFggbG92ZXMgWSIuIFRoaXMgaXMgdGhlIHNhbWUgYXMgIkFsbCB0aGluZ3MgbG92ZSBh dCBsZWFzdCBvbmUgdGhpbmcuIiwgd2hlcmUgdGhlICJ0aGluZyhzKSIgY2FuIGJlIGFueXRoaW5n LCBpbmNsdWRpbmcgdGhlIHRoaW5nIGl0c2VsZi4gTm90ZSBoZXJlIHRoYXQgJydkZScnIGNhbiBy ZWZlciB0byBkaWZmZXJlbnQgdGhpbmdzIGZvciBlYWNoICcnZGEnJyAtIHRoZSB0aGluZyB3aGlj aCBpcyByZWZlcnJlZCB0byBieSAnJ2RlJycgaXMgZGVwZW5kZW50IG9uIHRoZSAnJ2RhJycsIHNp bmNlIGl0IGNhbWUgYmVmb3JlIGl0IGluIHRoZSBwcmVuZXgsIHRoZXJlZm9yZSBlYWNoIHRoaW5n IG1pZ2h0IGxvdmUgc29tZXRoaW5nIGRpZmZlcmVudC4gSWYgd2Ugc3dpdGNoZWQgdGhlIHBsYWNl cyBvZiAnJ2RhJycgYW5kICcnZGUnJyBpbiB0aGUgcHJlbmV4LCBhIGRpZmZlcmVudCByZXN1bHQg d291bGQgYXJpc2U6ICcnZGUgcm8gZGEgem8ndSBkYSBwcmFtaSBkZScnID0gIkNvbmNlcm5pbmcg YXQgbGVhc3Qgb25lIHRoaW5nIFksIGNvbmNlcm5pbmcgYWxsIFggd2hpY2ggZXhpc3RzOiBYIGxv dmVzIFkiLCBtZWFuaW5nICJUaGVyZSBleGlzdHMgYXQgbGVhc3Qgb25lIHRoaW5nIHdoaWNoIGV2 ZXJ5dGhpbmcgbG92ZXMiLgoKT2YgY291cnNlLCBib3RoIGNsYWltcyBhcmUgY29tcGxldGVseSBm YWxzZS4gVGhlcmUgYXJlIG1hbnkgdGhpbmdzIHdoaWNoIGxvdmVzIG5vdGhpbmcgLSByb2Nrcywg b3IgYWJzdHJhY3QgY29uY2VwdHMsIGZvciBleGFtcGxlLiBMaWtld2lzZSwgaXQncyBpbXBvc3Np YmxlIHRvIGNvbmNpZXZlIG9mIHNvbWV0aGluZyB3aGljaCBldmVyeXRoaW5nIGxvdmVzLCBzaW5j ZSAiZXZlcnl0aGluZyIgYWxzbyBlbmNvbXBhc3NlcyBub24tc2VudGllbnQgdGhpbmdzLiBXZSBu ZWVkIGJldHRlciB3YXlzIHRvIHJlc3RyaWN0IHdoYXQgdGhlc2UgdmFyaWFibGVzIGNhbiBwb2lu dCB0by4gT25lIGdvb2Qgd2F5IG9mIGRvaW5nIGl0IGlzIHRvIG1ha2UgdGhlbSB0aGUgc3ViamVj dCBvZiBhIHJlbGF0aXZlIGNsYXVzZToKCicncm8gZGkgcG9pIHJlbW5hIHpvJ3UgYmlya2EgZGkn JyA9ICJDb25jZXJuaW5nIGFsbCBYIHRoYXQgZXhpc3RzLCB3aGljaCBpcyBodW1hbjogWCBoYXMg b25lIG9yIG1vcmUgYXJtcy4iIG9yICJBbGwgaHVtYW5zIGhhdmUgYXJtcyIsIHdoaWNoIGlzIHRy dWUsIGF0IGxlYXN0IHdoZW4gc3BlYWtpbmcgaW4gYSBwb3RlbnRpYWwsIHRpbWVsZXNzIHNlbnNl LgoKX18nJ2JpcmthJydfXyB4MSBpcyBhbiBhcm0gb2YgeDIKCgoKV2hlbiByZXN0cmljdGluZyBj bGFpbXMgdXNpbmcgdGhpcyBraW5kIG9mIGxvZ2ljYWwgImV4aXN0ZW50aWFsIiB2YXJpYWJsZSwg aXQncyB2ZXJ5IGltcG9ydGFudCB0byByZW1lbWJlciB0aGF0IHVubGVzcyB0aGVyZSBpcyBhbiBl eHBsaWNpdCAnJ25vJycgYXMgYSBxdWFudGlmaWVyLCB0aGVzZSBraW5kIG9mIHN0YXRlbWVudHMg YWx3YXlzIGltcGx5IHRoYXQgdGhlcmUgX19hY3R1YWxseSBleGlzdHNfXyBzb21ldGhpbmcgd2hp Y2ggY2FuIGJlIHJlZmVycmVkIHRvIGJ5ICcnZGEnJy4gVGhlcmVmb3JlLCBhbnkga2luZCBvZiBu b24tbmVnYXRlZCBzdGF0ZW1lbnQgd2hlcmUgJydkYScnIHBvaW50cyB0byBzb21ldGhpbmcgd2hp Y2ggZG9lcyBub3QgZXhpc3QgaXMgZmFsc2UsIGFzIGluIHRoaXMgZXhhbXBsZTogJydybyBkYSBw b2kgcGF2eXNlbGppcm5hIHpvJ3UgZGEgc2UgamlybmEnJyAtICJBbGwgdW5pY29ybnMgaGF2ZSBo b3JucyIuIFRoaXMgaXMgd3JvbmcgYmVjYXVzZSwgc2luY2UgJydkYScnIGlzIGV4aXN0ZW5zaWFs LCBpdCBhbHNvIG1lYW5zIHRoYXQgdGhlcmUgbXVzdCBleGlzdCBhdCBsZWFzdCBvbmUgdW5pY29y bi4KCkludGVyZXN0aW5nbHksIHdoZW4gdXNpbmcgYSByZWxhdGl2ZSBjbGF1c2UsIHRoZSB2YXJp YWJsZSBpcyBiZWluZyByZXN0cmljdGVkIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB5b3UgdXNlICcn cG9pJycgb3IgJydub2knJy4gVGhpcyBpcyBiZWNhdXNlICcncmUgZGEgbm9pIGdlcmt1Jycgc3Rp bGwgb25seSBjYW4gcmVmZXIgdG8gdHdvIHRoaW5ncyB3aGljaCBhcmUgaHVtYW5zLiBUaGVyZWZv cmUsICcnbm9pJycgbWFrZXMgbGl0dGxlIHNlbnNlIHdpdGggJydkYScnLycnZGUnJy8nJ2RpJycu IEFueSBjbGF1c2UgaXMgYWx3YXlzIHJlc3RyaWN0aXZlLCB1bmxlc3MgaXQncyByZWFsbHkgc3R1 cGlkIGFuZCBvYnZpb3VzIGxpa2UgJydkZSBub2kgZ2Vya3UgY3UgZ2Vya3UnJy4KCkluIGZhY3Qs IHlvdSBkb24ndCByZWFsbHkgbmVlZCB0aGUgcHJlbmV4IHRvIGRlZmluZSB0aGUgdmFyaWFibGVz LiBZb3UgY2FuIHVzZSB0aGVtIGRpcmVjdGx5IGFzIHN1bXRpIGluIHRoZSBicmlkaSwgYW5kIHF1 YW50aWZ5IHRoZW0gdGhlcmUuIFlvdSBvbmx5IG5lZWQgdG8gcXVhbnRpZnkgdGhlbSB0aGUgZmly c3QgdGltZSB0aGV5IGFwcGVhciwgdGhvdWdoLiBUaHVzLCB0aGUgc2VudGVuY2UgYWJvdXQgaHVt YW5zIGhhdmluZyBhcm1zIGNvdWxkIGJlIHR1cm5lZCBpbnRvICcnYmlya2Egcm8gZGkgcG9pIHJl bW5hJycuIFRoZSBvcmRlciBvZiB0aGUgdmFyaWFibGVzIHN0aWxsIG1hdHRlcnMgdGhvdWdoLCBh bmQgc28gdGhlIHByZW5leCBjYW4gYmUgdXNlZCB0byBhdm9pZCBoYXZpbmcgdG8gbWVzcyB1cCB5 b3VyIGJyaWRpIHRvIHBsYWNlIHRoZSB2YXJpYWJsZXMgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuIFdo ZW4gaGF2aW5nIG1vcmUgdmFyaWFibGVzLCBhIHByZW5leCBpcyB1c3VhbGx5IGEgZ29vZCBpZGVh LgoKVGhlIHNlY29uZCBraW5kIG9mIGxvZ2ljYWwgd29yZHMgYXJlIGJhc2ljYWxseSB0aGUgc2Ft ZSBhcyB0aGUgdGhyZWUgd2UgaGF2ZSBhbHJlYWR5IGJlZW4gdGhvdWdoLCBidXQgdGhlc2UgYXJl IGJyaWthJ2kgaW5zdGVhZCBvZiBzdW1rYSdpOgoKX18nJ2J1J2EnJ19fIGxvZ2ljYWxseSBxdWFu dGlmaWVkIGV4aXN0ZW50aWFsIGJyaWthJ2kgMQoKX18nJ2J1J2UnJ19fIGxvZ2ljYWxseSBxdWFu dGlmaWVkIGV4aXN0ZW50aWFsIGJyaWthJ2kgMgoKX18nJ2J1J2knJ19fIGxvZ2ljYWxseSBxdWFu dGlmaWVkIGV4aXN0ZW50aWFsIGJyaWthJ2kgMwoKVGhlc2Ugd29yayBwcmV0dHkgbXVjaCB0aGUg c2FtZSB3YXkgYXMgdGhlIG90aGVyIHRocmVlLCBidXQgdGhlcmUgYXJlIGEgZmV3IHBvaW50cyB3 aGljaCBhcmUgaW1wb3J0YW50IHRvIG1lbnRpb246CgpTaW5jZSBvbmx5IHRlcm1zIGNhbiBnbyBp biB0aGUgcHJlbmV4LCB0aGVzZSBicmlrYSdpIG5lZWQgdG8gaGF2ZSBhIHF1YW50aWZpZXIgaW4g b3JkZXIgdG8gbWFrZSB0aGVtIGludG8gc3VtdGkuIFdoZW4gcXVhbnRpZmllZCBpbiB0aGUgcHJl bmV4LCBob3dldmVyLCB0aGUgcXVhbnRpZmllciB3b3JrcyB2ZXJ5IGRpZmZlcmVudCBmcm9tIHF1 YW50aWZpZXJzIHdpdGggbm9ybWFsIHNlbGJyaTogSW5zdGVhZCBvZiBxdWFudGlmeWluZyB0aGUg YW1vdW50IG9mIHRoaW5ncyB3aGljaCBmaXRzIHRoZSB4MSBvZiB0aGUgc2VsYnJpIHZhcmlhYmxl LCBpdCBkaXJlY3RseSBxdWFudGlmaWVzIHRoZSBhbW91bnQgb2Ygc2VsYnJpIHdoaWNoIGFwcGxp ZXMuIEFnYWluLCB0aGUgZGVmYXVsdCBxdWFudGlmaWVyIGlzICcnc28ndScnLiBUaHVzLCBpbnN0 ZWFkIG9mICcncmUgYnUnYSB6byd1JycgbWVhbmluZyAiQ29uY2VybmluZyB0d28gdGhpbmdzIHdo aWNoIGlzIGluIHJlbGF0aW9uc2hpcCBYOiIsIGl0IG1lYW5zICJDb25jZXJuaW5nIHR3byByZWxh dGlvbnNoaXBzIFg6IgoKCgpJdCdzIHByb2JhYmx5IGdvb2QgdG8gc2VlIGFuIGV4YW1wbGUgb2Yg JydidSdhJycgcHV0IHRvIHByYWN0aWNlOgoKJydybyBkYSBidSdhIGxhIC5iYWIuJycgPSAiQ29u c2lkZXJpbmcgYWxsIFggd2hpY2ggZXhpc3RzOiBYIGlzIGluIGF0IGxlYXN0IG9uZSByZWxhdGlv bnNoaXAgd2l0aCBCb2IiID0gIkV2ZXJ5dGhpbmcgaXMgcmVsYXRlZCB0byBCb2IgaW4gYXQgbGVh c3Qgb25lIHdheS4iLiBOb3RpY2UgYWdhaW4gdGhlIG9yZGVyIG1hdHRlcnM6ICcnc3UnbyBidSdh IHJvIGRhIHpvJ3UgZGEgYnUnYSBsYSAuYmFiLicnIG1lYW5zOiAiVGhlcmUgaXMgYXQgbGVhc3Qg b25lIHJlbGF0aW9uc2hpcCBzdWNoIHRoYXQgZXZlcnl0aGluZyB0aGF0IGV4aXN0cyBpcyBpbiB0 aGF0IHJlbGF0aW9uc2hpcCB3aXRoIEJvYiIuIFRoZSBmaXJzdCBzdGF0ZW1lbnQgaXMgdHJ1ZSAt IGZvciBhbnkgb25lIHRoaW5nLCBvbmUgY2FuIGluZGVlZCBtYWtlIHVwIHNvbWUgc2VsYnJpIHdo aWNoIHJlbGF0ZXMgYW55IGd1eSBjYWxsZWQgQm9iIGFuZCBpdC4gQnV0IEknbSBub3Qgc3VyZSB0 aGUgbGF0dGVyIGlzIHRydWUgLSB0aGF0IG9uZSBjYW4gbWFrZSBhIHNlbGJyaSB3aGljaCBjYW4g cmVsYXRlIGFueXRoaW5nLCBubyBtYXR0ZXIgd2hhdCBpdCBpcywgYW5kIEJvYi4KCkxldCdzIGhh dmUgYW4gZXhhbXBsZSB3aGljaCBxdWFudGlmaWVzIHNlbGJyaToKCicnY2knaSBidSdlIHpvJ3Ug bWkgYnUnZSBkbycnIC0gIkNvbmNlcm5pbmcgYW4gaW5maW5pdGUgYW1vdW50IG9mIHJlbGF0aW9u c2hpcHM6IEkgYW0gaW4gYWxsIHRob3NlIHJlbGF0aW9uc2hpcCB3aXRoIHlvdS4iIG9yICJUaGVy ZSBleGlzdHMgYW4gaW5maW5pdGUgYW1vdW50IG9mIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiB1cyIK CllvdSBjYW4ndCBxdWFudGlmeSB0aGUgc2VsYnJpIHZhcmlhYmxlcyBpbiB0aGUgYnJpZGkgaXRz ZWxmLCB0aG91Z2guIFRoZW4gaXQgd2lsbCBhY3QgYXMgYSBzdW10aTogJydtaSBjaSdpIGJ1J2Eg ZG8nJyBpcyBub3QgYSBicmlkaS4gVGhlcmUgYXJlIHNvbWUgc2l0dWF0aW9uIHdoZXJlIHRoaXMg d2lsbCBiZWNvbWUgcHJvYmxlbWF0aWMgLSBsZXNzb24gdHdlbnR5LW5pbmUgd2lsbCB0ZWFjaCBo b3cgdG8gb3ZlcmNvbWUgdGhvc2UgcHJvYmxlbXMuCgoKCgoKISFMb2piYW4gTGVzc29ucyAtIExl c3NvbiB0d2VudHktZWlnaHQgKHR5cGVzKQoKVGhpcyBsZXNzb24gYWxvbmcgd2l0aCB0aGUgZm9s bG93aW5nIHRocmVlIGxlc3NvbnMgd2lsbCBiZSBvbiBzZW1hbnRpY3MgLSBob3cgdG8gaW50ZXJw cmV0IHRoZSBtZWFuaW5nIG9mIGNlcnRhaW4gY29uc3RydWN0cy4gVGhpcyBsZXNzb24gaXMgb24g dGhlIG1lYW5pbmcgb2YgZGlmZmVyZW50IHR5cGVzIG9mIHN1bXRpLCBhbmQgd2lsbCBnZXQgcGhp bG9zb3BoaWNhbCBhbmQgYSBiaXQgaGF6eS4gVGhlIGZvbGxvd2luZyB0d28gd2lsbCBiZSBvbiBh YnN0cmFjdGlvbnMsIHdoaWNoLCBldmVuIHRob3VnaCB5b3UgYWxyZWFkeSBiZWNhbWUgZmFtaWxp YXIgd2l0aCB0aGVtIHR3ZW50eS10d28gbGVzc29ucyBhZ28sIHdpbGwgYmVjb21lIG1vcmUgdGVj aG5pY2FsIGFzIEkgYXR0ZW1wdCB0byBleHBsYWluIHRoZWlyIHNlbWFudGljIGFuZCBncmFtbWF0 aWNhbCBwcm9wZXJ0aWVzLgoKCgpUZWFjaGluZyAoYW5kIGxlYXJuaW5nKSBzZW1hbnRpY3MgaXMg bXVjaCBtb3JlIHRyaWNreSB0aGFuIHRlYWNoaW5nIGdyYW1tYXIsIGVzcGVjaWFsbHkgaW4gTG9q YmFuLCB3aGVyZSBncmFtbWFyIGlzIGJsYWNrLW9yLXdoaXRlLCBidXQgc2VtYW50aWNzIGlzbid0 LiBUaGVyZWZvcmUsIEkgZmluZCBpdCBuZWNlc3NhcnkgdG8gcmVwZWF0IHRoZSBkaXNjbGFpbWVy IGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgdGhpcmQgcGFydCBvZiBXYXZlbGVzc29uc2NvbnRp bnVlZDogVGhlIGZvbGxvd2luZyBpcyBub3Qgb2ZmaWNpYWwsIGJ1dCByYXRoZXIgYW4gKGVkdWNh dGVkKSBvcGluaW9uIG9uIHRoZSBsYW5ndWFnZS4KCgoKQmFkIGdyYW1tYXIgaXMgZWFzeSB0byBz cG90IGluIExvamJhbiAtIGluIGZhY3QgaXQncyB1bmFtYmlndW91c2x5IGNvcnJlY3Qgb3Igbm90 LiBJbiBjb250cmFzdCwgc2F5aW5nIHRoYXQgYSBqdWZyYSBpcyBzZW1hbnRpY2FsbHkgd3Jvbmcg aXMgdGhlIHNhbWUgYXMgc2F5aW5nIHRoYXQgdGhlIHNwZWFrZXIgaXMgdXNpbmcgTG9qYmFuIHRv IHRoaW5rIHdyb25nbHkgYWJvdXQgdGhlIHdvcmxkLiBJdCdzIG5vdCBzYXlpbmcgIllvdSBjYW4n dCBzYXkgWCIgYXMgbXVjaCBhcyAiWW91IGNhbid0IGludGVycHJldCBYIGluIHRoaXMgd2F5LiBZ b3Ugc2hvdWxkIGludGVycHJldCBpdCB0aGlzIHdheSIuIFBsYWNpbmcgdGhlc2UgcmVzdHJpY3Rp b25zIG9uIGNvbXBvc2luZyBhbmQgdW5kZXJzdGFuZGluZyBsYW5ndWFnZSBpcyBhIHNsaXBwZXJ5 IHNsb3BlIGxlYWRpbmcgdG8gcmVzdHJpY3Rpb25zIG9uIGNyZWF0aXZpdHksIGFuZCBldmVuIHBy ZXN1cHBvc2luZyBvZiBjZXJ0YWluIG1ldGFwaHlzaWNhbCB2aWV3cG9pbnRzIHdoaWxlIGV4Y2x1 ZGluZyBvdGhlcnMuCgoKClRoZW4gd2h5IGluY2x1ZGUgc2VtYW50aWMgc3RhbmRhcmRzIGluIGEg dGV4dGJvb2s/IFNob3VsZG4ndCBhbnkgc3BlYWtlciBiZSBmcmVlIHRvIHNheSBhbnl0aGluZywg YW5kIGFueSBsaXN0ZW5lciBiZSBmcmVlIHRvIGxldCB0aGF0IHNwZWVjaCBtZWFuIHdoYXRldmVy IHRoZXkgd2FudD8KClRoaXMgaXMgYSBtYXR0ZXIgb2YgbWVhc3VyZS4gR2l2ZW4gdGhhdCBleHRy ZW1lLCB0aGF0IGlzLCBpZiBubyBzZW1hbnRpYyBzdGFuZGFyZHMgd2VyZSBzZXQsIGV2ZXJ5dGhp bmcgY291bGQgbWVhbiBhbnl0aGluZywgYW5kIGFsbCBjb21tdW5pY2F0aW9uIHdvdWxkIGJlIG1l YW5pbmdsZXNzLiBJbiBhbnkgbGFuZ3VhZ2Ugd2hpY2ggYWltcyB0byBmYWNpbGl0YXRlIGNvbW11 bmljYXRpb24sIG9uZSBtdXN0IGJlIGFibGUgdG8gZXhwcmVzcyBvbmVzZWxmIGluIHN1Y2ggYSB3 YXkgdGhhdCBvbmUgY2FuIHRydXN0IHRoYXQgb25l4oCZcyBtZXNzYWdlIGlzIGludGVycHJldGVk IGluIHRoZSBkZXNpcmVkIHdheS4gU2VtYW50aWMgcnVsZXMgb2YgTG9qYmFuIGRvIG5vdCBleGlz dCBpbiBvcmRlciB0byBwcmV2ZW50IHBlb3BsZSBmcm9tIHNheWluZyBBLiBUaGV5IGV4aXN0IHRv IHByZXZlbnQgcGVvcGxlIGZyb20gc2F5aW5nIEIgYW5kIGhhdmluZyBvdGhlcnMgdGhpbmsgdGhl eSBtZWFudCBBLgoKCgpUaGlzIGxlc3NvbiBpcyBvbiB0eXBlcy4gVGhlIHdvcmQgX190eXBlX18s IGluZm9ybWFsbHkgdHJhbnNsYXRlZCB0byAnJ2tsZXNpJycsIGlzIHVzZWQgYnkgTG9qYmFuaXN0 cyB0byBkZXNjcmliZSB0aGUgZXhpc3RlbnRpYWwgbmF0dXJlIG9mIHRoZSB0aGluZ3Mgc3VtdGkg ZGVzY3JpYmUuIFRoaXMgbmF0dXJlIGlzLCBhbmQgbXVzdCBiZSwgdGhlIHNhbWUgYXMgdGhlIG5h dHVyZSBvZiB0aGUgdGhpbmdzIGRlc2NyaWJlZCBieSBvdGhlciBsYW5ndWFnZXMgc3VjaCBhcyBF bmdsaXNoLiBIb3dldmVyLCBpbiBMb2piYW4sIHRoZSBkaWZmZXJlbnQgd2F5cyBvZiBtYWtpbmcg c3VtdGkgZGVub3RlIHdoaWNoIHR5cGUgYSBzdW10aSBiZWxvbmdzIHRvLCBzbyB3aGlsZSB0aGUg ZXhhY3QgbmF0dXJlcyBvZiBzdW10aSBjYW4gYmUgaWdub3JlZCBpbiBFbmdsaXNoLCBMb2piYW5p c3RzIGhhdmUgdG8gZGVhbCB3aXRoIHRoZW0uCgoKCldoZW4gc3BlYWtpbmcgb2YgdHlwZXMsIExv amJhbmlzdHMgb2Z0ZW4gbWVudGlvbiB3aGF0IHR5cGUgYSBzdW10aSBfX3JlYWxseSBpc19fLiBX aGVuIGJlZ2lubmluZyBmcm9tIHRoZSBiZWdpbm5pbmcsIHdlIGhhdmUgdG8gcmVtZW1iZXIgdGhh dCB0aGlzIGNlcnRhaW50eSBpcyBub3QgcGhpbG9zb3BoaWNhbGx5IHdlbGwgZ3JvdW5kZWQuIFRh a2luZyBhIG1hdGVyaWFsaXN0aWMgdmlld3BvaW50LCB0aGUgbmF0dXJhbCB3b3JsZCBvZiBwYXJ0 aWNsZXMgYW5kIHdhdmVzIGRvZXMgbm90IGNvcnJlc3BvbmQgd2VsbCB3aXRoIGh1bWFuIHVuZGVy c3RhbmRpbmcgb2Ygc2F5LCBoYXRyZWQsIHdoaWNoIGlzIG5vdCBkZWZpbmVkIGJ5IGFueSBzcGVj aWZpYyBwYXJ0aWNsZXMsIG5vciBhbnkgc3BlY2lmaWMgYnJhaW4gYWN0aXZpdHkuIEl0IGlzIGEg cHVyZWx5IGFic3RyYWN0IGNvbmNlcHQuIFNpbWlsYXJseSwgaW4gYW4gZXh0cmVtZSBpbmR1Y3Rp b25pc3Qgdmlld3BvaW50LCBzdWNoIGFzIHRoYXQgdGFrZW4gYnkgSHVtZSwgYWxsIHdlIGh1bWFu cyBleHBlcmllbmNlIGFyZSBzdWJqZWN0aXZlIGltcHJlc3Npb25zIG92ZXIgdGltZSAtIGEgbG9u ZyBzdHJpbmcgb2YgZXZlbnRzLCBvciwgc29tZSBwZW9wbGUgYXJndWUsIGEgYnVuY2ggb2YgcXVh bGlhIChUaGlzIGlzIF9fZ3JlZW5fXy4gVGhpcyBpcyBfX2NyaXNweV9fLiBUaGlzIGlzIF9fcm91 bmRfXy4gVGhpcyBpcyBfX3Rhc3R5X18uID0+ICJUaGlzIGlzIGFuIGFwcGxlIi4pIFRoaXMgdmll d3BvaW50LCBob3dldmVyLCBkb2VzIG5vdCBjb3JyZXNwb25kIHdlbGwgdG8gaHVtYW4gdW5kZXJz dGFuZGluZyBvZiBzYXksIGEgY2F0LCB3aG9zZSBleGlzdGVuY2UgbXVzdCBiZSBwcmVzdW1lZCB0 byBjb250aW51ZSBldmVuIHdoZW4gaXQgaW52b2tlcyBubyBxdWFsaWEgaW4gaHVtYW5zLCB3aG9z ZSBxdWFsaWEgdmFyeSBhbW9uZyBkaWZmZXJlbnQgY2F0cywgYW5kIHdob3NlIGRlYXRoIHNtb290 aGx5IHN0cmlwcyBpdCBvZiBpdHMgY2F0bGlrZSBxdWFsaWEuCgoKCkluIG90aGVyIHdvcmRzLCB3 aGlsZSBvbmUgY2FuIHRha2UgcGhpbG9zb3BoaWNhbGx5IGNvbnNpc3RlbnQgd29ybGR2aWV3cyB3 aGVyZSBvYmplY3RzIGFuZCBjb25jZXB0cyBkb24ndCBleGlzdCwgc3VjaCB3b3JsZCB2aWV3cyBh cmUgdW5mcnVpdGZ1bCBmb3IgY29uZHVjdGluZyBodW1hbiBhZmZhaXJzOiBJbiBvdXIgbGl2ZXMs IHdlIHNpbXBseSBuZWVkIHRvIHJlZmVyIHRvIG9iamVjdHMsIGFuZCBwcmV0ZW5kIHRoYXQgdGhl eSBhY3R1YWxseSBleGlzdCBhcyBzdWNoLiBPbmUgZmFtb3VzIHN0b3J5IHRlbGxzIG9mIGEgcGhp bG9zb3BoZXIsIFNhbXVlbCBKb2huc29uLCB3aG8sIGZydXN0cmF0ZWQgYWJvdXQgdGhlIHBoaWxv c29waGljYWwgc291bmRuZXNzIGFuZCB1bi1yZWZ1dGFiaWxpdHkgb2YgYSBmZWxsb3cgcGhpbG9z b3BoZXIncyBiZWxpZWYgdGhhdCB0aGUgcGh5c2ljYWwgd29ybGQgZG9lcyBub3QgZXhpc3QsIGZ1 cmlvdXNseSBraWNrcyBhIHJvY2sgeWVsbGluZywgIkkgcmVmdXRlIGl0IF9fdGh1cyFfXyIKCgoK SW4gTG9qYmFuLCBtb3N0IHN1bXRpIGFyZSBtYWRlIGZyb20gc2VsYnJpIG9uZSB3YXkgb3IgdGhl IG90aGVyLCB3aGljaCBtZWFucyB0aGF0IGF0IHRoZSBjb3JlIG9mIG1vc3Qgc3VtdGkgbGllcyBh IHNlbGJyaSwgYW4gYWN0aW9uLCBzb21ldGhpbmcgd2hpY2ggc29tZXRoaW5nIF9fZG9lc19fLiBU aGUgU3VuIGlzIG5vdCB1c3VhbGx5IHJlZmVycmVkIHRvIGFzIHtsYSBzb2xyaX0sICJUaGUgU3Vu IiwgYnV0IG9mdGVuIHtsbyBzb2xyaX0sICJTb21ldGhpbmcgd2hpY2ggaXMgYmVpbmcgYSBzdW4i LiBUaGVyZSBhcmUgbWFueSBjb25mdXNpbmcgcGhpbG9zb3BoaWNhbCBpbXBsaWNhdGlvbnMgb2Yg dGhpczogQXMgc3RhdGVkIGJlZm9yZSwgaXQncyBoYXp5IGF0IGJlc3Qgd2hhdCBpdCBtZWFucyAi dG8gY2F0IiBhbmQgd2hlbiBzb21ldGhpbmcg4oCcYmVnaW5zIGNhdHRpbmfigJ0gb3IgInN0b3Bz IGNhdHRpbmciLiBBIGZpY3Rpb25hbCBsYW5ndWFnZSB3aXRoIHNpbWlsYXIgcHJvcGVydGllcyBp cyBkZXNjcmliZWQgaW4gYSBuZWF0IHNob3J0IHN0b3J5LCAiVGzDtm4sIFVxYmFyLCBPcmJpcyBU ZXJ0aXVzIiAod2hlcmUgIlRoZSBNb29uIHJvc2Ugb3ZlciB0aGUgb2NlYW4iIGlzIHBocmFzZWQg dXNpbmcgc2ltaWxhciB2ZXJiL2FkdmVyYi1kZXJpdmVkIG5vdW5zOiAiVXB3YXJkIGJlaGluZCB0 aGUgb25zdHJlYW1pbmcgaXQgbW9vbmVkIikuIEluIHRoYXQgc2hvcnQgc3RvcnksIHRoZSBsYW5n dWFnZSBpcyBhYm91dCB0byBsZWFkIHRvIHRoZSBjb2xsYXBzZSBvZiBzb2NpZXR5IGJlY2F1c2Ug dGhlIHdvcmxkdmlldyB3aGljaCBzdWNoIGEgbGFuZ3VhZ2UgaW1wbGllcyBpcyB1bmZpdCBmb3Ig ZGVhbGluZyB3aXRoIHRoZSByZWFsaXRpZXMgb2YgRWFydGguCgoKClRoZSB0YWtlIGhvbWUgcG9p bnQgb2YgYWxsIHRoaXMgaXM6IFByZWNpc2UgZGVmaW5pdGlvbnMgb2YgdGhlIGRpZmZlcmVudCB0 eXBlcyBvZiBzdW10aSBhcmUgaW1wb3NzaWJsZSwgYmVjYXVzZSB0aGVzZSBjYXRlZ29yaWVzIGRv IG5vdCBjb3JyZXNwb25kIHRvIHRoZSByZWFsIHdvcmxkLiBOb25ldGhlbGVzcywgd2UgbmVlZCB0 aGVzZSBjYXRlZ29yaWVzIHdoZW4gc3BlYWtpbmcuCgpUaGVyZSBtYXkgcG9zc2libHkgYmUgYW4g aW5maW5pdGUgYW1vdW50IG9mIHR5cGVzLCBidXQgSSdsbCBnbyB0aHJvdWdoIHRoZSBvbmVzIHdo aWNoIGFyZSBkZWFsdCB3aXRoIG1vc3Qgb2Z0ZW4gaW4gTG9qYmFuOgoKCgpNYXRlcmlhbCBvYmpl Y3RzIGFyZSBwZXJoYXBzIHRoZSBlYXNpZXN0IHRvIHVuZGVyc3RhbmQsIGV2ZW4gdGhvdWdoIHRo ZXkncmUgaGFyZCB0byBkZWZlbmQgcGhpbG9zb3BoaWNhbGx5LiBUaGV5IGFsd2F5cyBoYXZlIGEg cGxhY2UgaW4gYm90aCB0aW1lIGFuZCBzcGFjZSwgYnV0IHRoZXkncmUgY29uc2lkZXJlZCB0byBi ZSBhIGNvbnN0YW50IGV4aXN0aW5nIHRocm91Z2ggdGltZS4gVGhhdCBpcywgb2JqZWN0cyBhcmUg bm90IGNvbnNpZGVyZWQgdGVtcG9yYWxseTogQSBiYW5hbmEgY2FycmllcyB3aXRoIGl0IGl0cyB1 bmNoYW5naW5nIGJhbmFuYS1uZXNzIGV2ZW4gYXMgaXQgYWdlcywgdW50aWwgaXQgYmVnaW5zIGJy ZWFraW5nIGRvd24gYW5kIHN0b3AgYmVpbmcgYSBiYW5hbmEgYXQgYWxsLiBJZiBvbmUgY291bGQg ZnJlZXplIHRpbWUgZm9yIGFsbCBiYW5hbmFzLCB0aGV5IHdvdWxkIHN0YXkgYmFuYW5hcyBkdXJp bmcgdGhhdCBmcm96ZW4gdGltZS4KCgoKRXZlbnRzIGFyZSwgbGlrZSBvYmplY3RzLCBwbGFjZXMg aW4gc3BhY2UgYW5kIHRpbWUsIGJ1dCBldmVudHMgYXJlIGNvbnNpZGVyZWQgYXMgdW5mb2xkaW5n IG92ZXIgdGltZTogVGhlIHRlbXBvcmFsIGFzcGVjdCBpcyBhcyBpbXBvcnRhbnQgYXMgdGhlIHNw YWNpYWwuIEEgYmFuYW5hIGNhbiBiZSBjb25zaWRlcmVkIGFuIGV2ZW50LCBidXQgaW4gdGhhdCBj YXNlLCB0aGUgZXZlbnQgb2YgYmVpbmcgYSBiYW5hbmEgaXMgY29tcG9zZWQgb2YgdGhlIGNoYW5n ZXMgdGhlIGJhbmFuYSB1bmRlcmdvZXMgb3ZlciB0aW1lLCB3aGVyZWFzIHdoYXQgbWFrZXMgYSBi YW5hbmEgYW4gb2JqZWN0IGlzIGFsbCB0aGF0IHdoaWNoIGRvZXNuJ3QgY2hhbmdlLiBGcmVlemlu ZyB0aW1lIHdvdWxkIGFsc28gZnJlZXplIHRoZSBldmVudCBvZiBiZWluZyBhIGJhbmFuYS4KCgoK RnVuY3Rpb25zIGFyZSBhIHRlcm0gdXNlZCBieSBhIGZldyBMb2piYW5pc3RzIHRvIGRlc2NyaWJl IGEgZ3JvdXAgb2YgdHlwZXMuIEFsbCBmdW5jdGlvbnMgYXJlIGFic3RyYWN0IGNvbmNlcHRzIGFu ZCBhcyBzdWNoIGRvbid0IHJlYWxseSBleGlzdCBpbiB0aGUgcmVhbCB3b3JsZCBvbiB0aGVpciBv d24uIFRoZSBudXRzIGFuZCBib2x0IG9mIGZ1bmN0aW9ucyBpcyB0aGUgc3ViamVjdCBvZiBsZXNz b24gdGhpcnR5OyBoZXJlLCB3ZSBmb2N1cyBvbiB0aGVpciBzZW1hbnRpY3MgYWxvbmUuIFRoZXJl IGFyZSBhIGZldyB0eXBlcyBvZiBmdW5jdGlvbnM6CgoKClNlbGJyaSBhcmUgc29tZXRoaW5nIHlv dSdyZSBhbHJlYWR5IHdlbGwgZmFtaWxpYXIgd2l0aC4gSXQgZGVzY3JpYmVzIGFuIGFjdCBvZiBk b2luZyBvciBiZWluZy4gJydjcmlubycnIHVuZGVyc3Rvb2QgYXMgYSBzZWxicmkgbWVhbnMgImJl aW5nIGdyZWVuIiwgJydkYXJ4aScnIG1lYW5zICJ0byBoaXQiLiBBIHNlbGJyaSBvbiBpdHMgb3du IGlzIGRldm9pZCBvZiB0aGUgc3VtdGkgd2hvJ3MgZG9pbmcgb3IgYmVpbmcgdGhhdCBzZWxicmku IEFzIHN1Y2gsIHRoZXkncmUgZGl2b3JjZWQgZnJvbSBhbnkgcGFydGljdWxhciBpbnN0YW5jZSBv ZiBiZWluZyBncmVlbiBvciBoaXR0aW5nLCBhbmQgY2FuIHRoZXJlZm9yZSBiZSB1bmRlcnN0b29k IGFzIGEga2luZCBvZiBnZW5lcmFsaXplZCBldmVudHMuIFRoZXkncmUgdXNlZCBmb3Igc2VudGVu Y2VzIHdoZXJlIG5vIHBhcnRpY3VsYXIgaW5zdGFuY2Ugb2YgdGhhdCBzZWxicmkgYmVpbmcgYXBw bGllZCBjb21lcyB0byBtaW5kLiBGb3IgaW5zdGFuY2UsIGlmIEknbSBsb29raW5nIGZvcndhcmQg dG8gbXkgd2VkZGluZyBuZXh0IFdlZG5lc2RheSwgSSdtIHRoaW5raW5nIGFib3V0IHNvbWUgZXZl bnQgcGxhY2VkIGluIHNwYWNlIGFuZCB0aW1lIChldmVuIGlmIHRoZSB3ZWRkaW5nIG5ldmVyIGFj dHVhbGx5IHRha2VzIHBsYWNlIGZvciBzb21lIHNhZCByZWFzb24pLCB3aGVyZWFzIGlmIEknbSBz YXlpbmcgdGhhdCBJJ2QgbGlrZSB0byBiZWNvbWUgbWFycmllZCBvbmUgZGF5LCBJIGRlc2lyZSB0 aGUgYWN0IG9mIG1hcnJpYWdlLCBhbmQgdGh1cyBJIGRlc2lyZSB0aGUgc2VsYnJpLCBvciByYXRo ZXIsIHRoYXQgdGhlIHNlbGJyaSBiZSBhcHBsaWVkIHRvIG1lLgoKCgpBbW91bnRzIGhhdmUgYWxt b3N0IHRoZSBzYW1lIGdyYW1tYXRpY2FsIHByb3BlcnRpZXMgYXMgc2VsYnJpLCBhcyB5b3UnbGwg c2VlIGluIHR3byBsZXNzb25zLiBTZW1hbnRpY2FsbHksIGhvd2V2ZXIsIHRoZXkncmUgcXVpdGUg ZGlzdGluY3QuIEFuIGFtb3VudCBpcyBfX2hvdyBtdWNoIHNvbWV0aGluZyBmaXRzIGEgc2VsYnJp X18sIHdoaWNoIGlzIHNvbWV0aGluZyBjb21wbGV0ZWx5IGRpZmZlcmVudCBmcm9tIHRoZSBzZWxi cmkgaXRzZWxmLiBBbiBhbW91bnQgaXMgc29tZSBraW5kIG9mIG51bWJlciwgb3IgY2FuIGJlIHJl cHJlc2VudGVkIGJ5IHNvbWUgbnVtYmVyLCBleGFjdCBvciBpbmV4YWN0LCBubyBtYXR0ZXIgd2hl dGhlciB3aGF0IGlzIHF1YW50aWZpZWQgaXMgcHJhY3RpY2FsbHkgbWVhc3VyYWJsZS4KClRoZXJl IGlzIHNvbWUgZGlzYWdyZWVtZW50IGFib3V0IHdoZXRoZXIgaXQncyBjb3JyZWN0IHRvIHVzZSBh biBhbW91bnQgYWJzdHJhY3Rpb24gdG8gcXVhbnRpZnkgc29tZXRoaW5nIHdoaWNoIGlzIGluIHBy aW5jaXBsZSB1bm1lYXN1cmFibGUuIFRodXMsIHRoZSBhbW91bnQgb2YgbXkgZ3JlZW5uZXNzIGlz IGNlcnRhaW5seSB2YWxpZCwgc2luY2UgdGhhdCBjb3VsZCBiZSBtZWFzdXJlZCBieSBzYXksIGEg ZGlnaXRhbCBjYW1lcmEsIGJ1dCBzcGVha2luZyBhYm91dCB0aGUgYW1vdW50IG9mIG1lIGJlaW5n IEJvYidzIGZyaWVuZCBtYXkgbm90IGJlIGFjY2VwdGVkIHBoaWxvc29waGljYWxseS4gQSBncmVh dCBleGFtcGxlIHdoaWNoIGRlbW9uc3RyYXRlcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGFtb3Vu dHMgYW5kIHNlbGJyaSB3aGVuIGFwcGxpZWQgdG8gc3BlY2lmaWMgc3VtdGkgaXMgdGhlIGZvbGxv d2luZzogIkkgY2hhbmdlIGluIGJsYWNrbmVzcyI6IFdoZW4gImJsYWNrbmVzcyIgaXMgY29uc2lk ZXJlZCBhIHNlbGJyaSwgaXQgbWVhbnMgdGhhdCBjaGFuZ2UgZnJvbSBiZWluZyBibGFjayB0byBu b3QgYmVpbmcgYmxhY2sgb3IgdGhlIG90aGVyIHdheSBhcm91bmQuIFdoZW4gImJsYWNrbmVzcyIg aXMgY29uc2lkZXJlZCBhbiBhbW91bnQsIGl0IG1lYW5zIG15IHNraW4gdHVybnMgbW9yZSBvciBs ZXNzIGJsYWNrIChhcyBpdCBkb2VzIGR1cmluZyB0aGUgd2ludGVyIHdoZW4gdGhlcmUncyBsaXR0 bGUgc3VubGlnaHQpLgoKCgpDb25jZXB0cyBhcmUgbWF5YmUgZnVuY3Rpb25zIGFuZCBtYXliZSB0 aGV5J3JlIG5vdCwgZGVwZW5kaW5nIG9uIHdobyB5b3UgYXNrLiBUaGVpciBwb3NpdGlvbiBhcyBt YXliZS1mdW5jdGlvbnMgaXMgZXhwbGFpbmVkIGluIGxlc3NvbiB0aGlydHkuIENvbmNlcHRzLCB1 bmxpa2Ugc2VsYnJpIGFuZCBhbW91bnRzLCBjYW5ub3QgYmUgYXBwbGllZCB0byBzdW10aS4gVGhl cmUgY2FuIGJlIG5vIHRhbGsgb2Yg4oCcZml0dGluZyBhIGNvbmNlcHTigJ0sIGxpa2UgdGhlcmUg Y2FuIGJlIG9mIHdoZXRoZXIgb3Igbm90IHlvdSBhcmUg4oCcZml0dGluZyBhIHNlbGJyaeKAnSBv ciBtZWFzdXJpbmcgdGhlIGFtb3VudCBvZiDigJxmaXR0aW5nIGEgc2VsYnJp4oCdLiBBIGNvbmNl cHQgZG9lcyBub3QgZXhpc3QgaW4gdGhlIHJlYWwgd29ybGQuIEEgY29uY2VwdCBpcyBub3QgZXZl biByZXByZXNlbnRlZCBpbiB0aGUgcmVhbCB3b3JsZCwgbGlrZSBhbW91bnRzIG9yIHNlbGJyaSBj YW4gYmUgd2hlbiB0aGV54oCZcmUgYXBwbGllZCB0byBzdW10aS4gQSBjb25jZXB0LCBzYXkg4oCc d2FyZmFyZeKAnSwgZXhpc3RzIG9ubHkgaW4gdGhlIG1pbmRzIG9mIHBlb3BsZSwgYW5kIGlzIHVu ZGVyc3Rvb2QgYXMgdGhlIG1lYW5pbmcgb2YgdGhlIHdvcmQg4oCcd2Fy4oCdLiBUaHVzICJsb3Zl IiB1bmRlcnN0b29kIGFzIGEgY29uY2VwdCBpcyB0aGUgaWRlYSBvZiB3aGF0IGxvdmUgaXMsIG5v IG1hdHRlciB3aG8gbG92ZXMgYW5kIHdobyBpcyBiZWluZyBsb3ZlZC4gCgpQZXJoYXBzIGFuIGV4 YW1wbGUgY2FuIGRlbW9uc3RyYXRlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYW1vdW50cywgc2Vs YnJpIGFuZCBjb25jZXB0czoKCkluICJJIGxpa2UgbG92aW5nIiBhbmQgIkkgbGlrZSBiZWluZyBs b3ZlZCIsIHdlIGFyZSBzcGVha2luZyBvZiBhIHNlbGJyaS4KCkluIHRoZSBzZW50ZW5jZSAiSSBs aWtlIGhvdyBtdWNoIEkgbG92ZSIsIEkgbGlrZSBhbiBhbW91bnQsIGFuZCB3aGVuIHNheWluZyAi SSBsaWtlIGxvdmUiLCBJIHJlZmVyIHRvIHRoZSBjb25jZXB0IG9mIGxvdmUuCgoKCkJyaWRpIGlz IGEgdHlwZSB3aGljaCB5b3UncmUgYWxzbyBmYW1pbGlhciB3aXRoLiBBIGJyaWRpIGlzIGNlcnRh aW5seSBub3QgYSBmdW5jdGlvbiwgYnV0IGl0IGRvZXMgYmVhciBzb21lIHJlbGF0aW9uIHRvIGZ1 bmN0aW9ucywgYXMgd2UnbGwgc2VlIGxhdGVyLiBCcmlkaSB0aGVtc2VsdmVzIGFyZSBpbWFnaW5h cnk7IHRoZXkgZXhpc3Qgbm90IGluIHRoZSByZWFsIHdvcmxkLCBidXQgaW5zaWRlIHRleHRzLCB0 aGUgbmV4dCB0eXBlIHRvIGV4cGxhaW4uIEhvd2V2ZXIsIGJyaWRpIGFyZSBub3QgY29tcG9zZWQg b2Ygd2hpY2hldmVyIHNwZWNpZmljIHN5bWJvbHMgYXJlIHVzZWQgdG8gZXhwcmVzcyB0aGVtIC0g YmVjYXVzZSBicmlkaSBhcmUgaW1hZ2luYXJ5LCBkaWZmZXJlbnQgc2VudGVuY2VzIG1heSBleHBy ZXNzIHRoZSBzYW1lIGJyaWRpLiBJdCBjYW4gYmUgdGhhdCB0aGUgc2VudGVuY2VzIGFyZSBpbiBk aWZmZXJlbnQgbGFuZ3VhZ2VzLCB0aGF0IHRoZSB3b3JkIG9yZGVyIGlzIGNoYW5nZWQsIG9yIHRo YXQgZGlmZmVyZW50IHdvcmRzIGFyZSB1c2VkIHRvIHJlZmVyIHRvIHRoZSBzYW1lIHN1bXRpLiBU aHVzICcnbWkgZG8gcHJhbWknJy8nJ21pIHByYW1pIGRvJycsICJJIGxvdmUgeW91IiwgJydtaSBr byBwcmFtaScnIGFuZCAnJ2RvIG1pIHByYW1pJycgKHdoZW4gc3Bva2VuIGJ5IHRoZSBwZXJzb24g dG8gd2hpY2ggJydkbycnIHJlZmVycyBpbiB0aGUgZmlyc3Qgc2VudGVuY2UpIGFsbCByZWZlciB0 byB0aGUgc2FtZSBicmlkaS4gQnJpZGkgYWx3YXlzIGhhdmUgdGhlaXIgZnVsbCBwbGFjZSBzdHJ1 Y3R1cmUgZmlsbGVkIGJ5IHNvbWV0aGluZyB3aXRoIGEgbm9uLXplcm8gdmFsdWUuCgoKClRoZSBj b25jZXB0IG9mIGEgdGV4dCBpcyBjbG9zZSBpbnRlcnR3aW5lZCB3aXRoIHRoZSBjb25jZXB0IG9m IGEgYnJpZGkuIEFsbCBicmlkaSBhcmUgY29udGFpbmVkIGluIHRleHRzLCB0aG91Z2ggbm90IGFs bCB0ZXh0cyBjb250YWluIGJyaWRpLiBJbmRlZWQsIG9uZSBtaWdodCBkZWZpbmUgYSB0ZXh0IGFz IHNvbWV0aGluZyB0aGF0IGNhbiBjb250YWluIGEgYnJpZGksIGJ1dCB0aGlzIGNhbiBlYXNpbHkg bGVhZCB0byBjaXJjdWxhciBkZWZpbml0aW9ucyB3aGVuIGF0dGVtcHRpbmcgdG8gZGVmaW5lIHdo YXQgYnJpZGkgYXJlLiBUaGUgY3VycmVudCB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgdGhpbmdzIHNo b3VsZCBiZSBjb25zaWRlcmVkIHRleHRzIGlzIHZhZ3VlIGF0IGJlc3QuIExpa2UgYnJpZGksIHRl eHRzIGFyZSBzb21ldGhpbmcgZXRoZXJlYWwsIHNvbWV0aGluZyB3ZSBjYW4gaW1hZ2luZSBleGlz dCBpbiBhIHJlYWxtIG91dHNpZGUgdGhlIHBoeXNpY2FsIHdvcmxkLiBXaGlsZSB0aGVzZSBsZXNz b25zIGNlcnRhaW5seSBhcmUgYSB0ZXh0LCB0aGUgdGV4dCBpcyBub3QgbWFkZSBvZiB0aGUgcGFw ZXIgdGhlc2UgbGVzc29ucyBhcmUgcHJpbnRlZCBvbiwgbm9yIHRoZSBtYWduZXRpYyBmaWVsZHMg d2hpY2ggY29uc3RpdHV0ZXMgdGhlIGJ5dGVzIGl0J3Mgc3RvcmVkIG9uLiBUaG9zZSBwaHlzaWNh bCBtZWRpYSBvbmx5IF9fcmVwcmVzZW50X18gdGhlIHRleHQuIEJ1dCB3aGF0IGV4YWN0bHkgY2Fu IHJlcHJlc2VudCBhIHRleHQ/IFdvcmRzLCBjZXJ0YWlubHkuIEJ1dCB3aGF0IGFib3V0IGJvZHkg bGFuZ3VhZ2U/IEFuZCBkbyBhY3Rpb25zIHJlYWxseSBzcGVhayBfX3RleHRzX18gbG91ZGVyIHRo YW4gd29yZHM/IFRoaXMgaXMgbm90IGFuIGlzc3VlIEknbGwgYXR0ZW1wdCB0byBhbnN3ZXIgb3Ig ZXZlbiBnaXZlIGEgc2hvdCBpbiB0aGVzZSBsZXNzb25zLgoKCgpTZXRzIGFyZSBtdWNoIGVhc2ll ciB0byBkZWFsIHdpdGguIFRoZXkncmUgYSBraW5kIG9mIG1ldGEtdHlwZTogQSBpbWFnaW5hcnkg Ym94LCBpbiB3aGljaCBhIGdyb3VwIG9mIHN1bXRpIGlzIHBhY2tlZCBpbnRvLiBUaGlzIGJveCBo YXMgdmVyeSBsaXR0bGUgdG8gZG8gd2l0aCB3aGF0J3MgaW5zaWRlIGl0LiBBIGJpZyBzZXQgZG9l cyBub3QgbWVhbiB0aGF0IHRoZSB0aGluZ3MgaW4gdGhlIHNldCBhcmUgYmlnLCBidXQgdGhhdCB0 aGVyZSBhcmUgbWFueSB0aGluZ3MgaW4gdGhlIHNldC4gU2V0cyBoYXZlIHZlcnkgZmV3IHByb3Bl cnRpZXMsIHRoZXJlZm9yZSBzZXRzIGFyZSBvbmx5IHVzZWQgd2hlbiBzcGVha2luZyBhYm91dCB0 aGUgbnVtYmVyIG9mIHRoaW5ncyBpbiBhIGdpdmVuIGNhdGVnb3J5LCB0aGUgbnVtYmVyIG9mIHRo aW5ncyBzaGFyZWQgYmV0d2VlbiBzZXZlcmFsIGNhdGVnb3JpZXMsIHRoZSBjcml0ZXJpYSBmb3Ig aW5jbHVkaW5nIHRoaW5ncyBpbiB0aGUgY2F0ZWdvcnkgZXRjLgoKCgpUaGUgbGFzdCB1c2VkIHR5 cGUgaXMgdGhlIHRydXRoIHZhbHVlLiBJJ3ZlIG9ubHkgc2VlbiBpdCBpbiB1c2UgYSBoYW5kZnVs IG9mIHRpbWVzLCBhbmQgb25seSBpbmNsdWRlIGl0IGhlcmUgYmVjYXVzZSBpdCdsbCBiZSByZWxl dmFudCB3aGVuIGRpc2N1c3NpbmcgYSBjZXJ0YWluIGFic3RyYWN0aW9uIGluIHRoZSBuZXh0IGxl c3Nvbi4gQSB0cnV0aCB2YWx1ZSBpcyBzb21lIHZlcmRpY3QgdGhhdCBhIGJyaWRpIGlzIHRydWUs IGZhbHNlLCBvciBhbnl3aGVyZSBpbiBiZXR3ZWVuLiBUaGUgbmF0dXJlIG9mIGEgdHJ1dGggdmFs dWUgaXMgYSB2ZXJkaWN0LCAiVHJ1ZSIsICJGYWxzZSIsICJNb3N0bHkgdHJ1ZSIgb3IgdGhlIGxp a2UuIEl0J3Mgb2Z0ZW4gcmVwcmVzZW50ZWQgYnkgYSBudW1iZXIsIHN1Y2ggYXMgMCAoZmFsc2Up LCAxICh0cnVlKSBvciAwLjUgKGhhbGZ3YXkgdHJ1ZSksIGJ1dCB0aGlzIGEgc2ltcGx5IGEgcmVw cmVzZW50YXRpb24gb2YgdGhlIHRydXRoIHZhbHVlLCBhbmQgbm90IHRoZSB2YWx1ZSBpdHNlbGYu IE9uZSBtaWdodCBhcyB3ZWxsIHJlcHJlc2VudCBpdCBieSBhIGNvbG9yLCByYW5naW5nIGZyb20g cmVkIHRvIGJsdWUuCgoKCiEhTG9qYmFuIExlc3NvbnMgLSBMZXNzb24gdHdlbnR5LW5pbmUgKHNl bWFudGljcyBvZiBzaW1wbGUgYWJzdHJhY3Rpb25zKQoKSGF2aW5nIGFjcXVpcmVkIGEgdGVybWlu b2xvZ3kgc3VpdGFibGUgZm9yIHRoZSBkaXNjdXNzaW9uIG9mIHR5cGVzLCB3ZSBjYW4gbm93IG1v cmUgZWFzaWx5IHRha2Ugb24gdGhlIHNlbWFudGljcyBvZiBhYnN0cmFjdGlvbnMuIE1vc3Qgb2Z0 ZW4sIGFuIGFic3RyYWN0aW9uIGlzIG1lcmVseSBhIGJyaWRpIGNvbnNpZGVyZWQgYXMgYSBjZXJ0 YWluIHR5cGUuIFdlIGJlZ2luIHdpdGggd2hhdCBJIGNvbnNpZGVyIHRoZSBzaW1wbGVzdCBvZiBh YnN0cmFjdGlvbnM6CgonJ19fbnVfXycnOiB4MSBpcyBhbiBldmVudCBvZiBCUklESSBoYXBwZW5p bmcKCllvdSdyZSBhbHJlYWR5IGZhbWlsaWFyIHdpdGggdGhpcyB3b3JkIGFuZCBob3cgaXQncyB1 c2VkLiBBICcnbnUnJy1hYnN0cmFjdGlvbiBpcyBhbHdheXMgYW4gZXZlbnQsIGFuZCBhcyBzdWNo LCBpdCdzIHNpdHVhdGVkIGluIG9uZSBwYXJ0aWN1bGFyIHRpbWUgYW5kIHNwYWNlLiBUaHVzOgoK JydtaSBjYXRsdSBsbyBudSBsbyBwcmVudSBjdSBkYXJ4aSBsbyBnZXJrdScnIC0gIkkgd2F0Y2gg YSBwZXJzb24gaGl0dGluZyBhIGRvZyIgaXMgYSBwcm9wZXIgZXZlbnQsIHdoZXJlYXMKCicnbWkg a2FrbmUgbG8gbnUgYmFqcmEgZmkgbG8gbWkgYmlya2EnJyAtICJJIGNhbiBydW5uaW5nIG9uIG15 IGFybXMiIGlzIHdyb25nLCBiZWNhdXNlIG5vIHBhcnRpY3VsYXIgZXZlbnQgb2YgcnVubmluZyBp cyBpbXBsaWVkOiBUaGUgcnVubmluZyB5b3UncmUgYWJsZSB0byBkbyBpcyBhIHNlbGJyaSAtIGEg Z2VuZXJhbGl6ZWQgZXZlbnQsIGFuZCB0aGUgTG9qYmFuIHNlbnRlbmNlIGFib3ZlIHNob3VsZCBz b3VuZCBhcyBiYWRseSBwaHJhc2VkIGFzIGl0cyBFbmdsaXNoIHRyYW5zbGF0aW9uLgoKCgpUaGVy ZSBhcmUgbWFueSB3YXlzIHRvIHZpZXcgYW4gZXZlbnQsIGFuZCBzbyB0aGVyZSBhcmUgZm91ciBv dGhlciBhYnN0cmFjdG9ycywgd2hpY2ggYWxsIGFsc28gY3JlYXRlIGV2ZW50cy4gVGhlIG1lYW5p bmcgb2YgdGhlc2UgYWJzdHJhY3Rpb25zIGFyZSBhbGwgY292ZXJlZCBieSAnJ251JycsIGJ1dCBt b3JlIHNwZWNpZmljLiBJJ2xsIGdvIHRocm91Z2ggdGhlbSBhbGwgaGVyZToKCicnX19tdeKAmWVf XycnOiB4MSBpcyBhIHBvaW50LWxpa2UgZXZlbnQgb2YgQlJJREkgaGFwcGVuaW5nCgonJ19femHi gJlpX18nJyB4MSBpcyBhIHN0YXRlIG9mIEJSSURJIGJlaW5nIHRydWUKCicnX19wdeKAmXVfXycn IHgxIGlzIGEgcHJvY2VzcyBvZiBCUklESSB1bmZvbGRpbmcgdGhyb3VnaCBzdGFnZXMgeDIKCicn X196deKAmW9fXycnIHgxIGlzIGFuIGFjdGl2aXR5IG9mIEJSSURJIGNvbnNpc3Rpbmcgb2YgdGhl IHJlcGVhdGVkIGV2ZW50IG9mIHgyCgpUaGUgdW5kZXJzdGFuZGluZyBvZiB0aGVzZSBhYnN0cmFj dG9ycyBpcyB0aWVkIHRvIHRoZSB1bmRlcnN0YW5kaW5nIG9mIGV2ZW50IGNvbnRvdXJzLiAnJ211 4oCZZScnIGlzIGFraW4gdG8gdGhlIGV2ZW50IGNvbnRvdXIgJydjb+KAmWknJyBpbiB0aGUgc2Vu c2UgdGhhdCBib3RoIHRyZWF0IHRoZSBicmlkaSBhcyBwb2ludC1saWtlIGluIHRpbWUgYW5kIHNw YWNlOgoKJydsbyBtdeKAmWUgbWkga2Fucm8gYmlueG8gY3Ugc2UgZGppY2EgbWknJyDigJMgIk1l IGJlY29taW5nIGhlYWx0aHkgaXMgZGVzaXJlZCBieSBtZSIgaGFzIHRoZSBzZW1hbnRpYyBtZWFu aW5nIHRoYXQgdGhlIHByb2Nlc3Mgb2YgYmVjb21pbmcgaGVhbHRoeSBpcyBub3QgYmVpbmcgY29u c2lkZXJlZC4gSWYgaXQgY29uc2lzdHMgb2YgcGFpbmZ1bCBjaGVtb3RoZXJhcHksIGl0IGlzIHBs YXVzaWJsZSB0aGF0IHRoaXMgcHJvY2VzcyBpcyBub3QgZGVzaXJlZCBhdCBhbGwuIOKAnEJlY29t aW5nIGhlYWx0aHnigJ0sIGluIGEgcG9pbnQtbGlrZSBzZW5zZSBpcyBkZXNpcmVkLCBob3dldmVy LgoKJyd6YeKAmWknJyBpcyBsaWtlIHRoZSBldmVudCBjb250b3VyICcnY2HigJlvJycgaW4gdGhl IHNlbnNlIHRoYXQgJydsbyB6YeKAmWkgQlJJREknJyBiZWdpbnMgdG8gYXBwbHkgd2hlbiB0aGUg YnJpZGkgYmVnaW5zIGFuZCBzaGFycGx5IGVuZHMgd2hlbiB0aGUgYnJpZGkgY2Vhc2VzIHRvIGJl IHRydWUsIG11Y2ggbGlrZSAnJ2Nh4oCZbycnLgoKJyd6YeKAmW8gemHigJlpIG1pIGthbnJvIGJp bnhvJycgbWVhbnMgdGhhdCB0aGUgc3RhdGUgb2YgbWUgYmVjb21pbmcgaGVhbHRoeSB0b29rIHRv byBtdWNoIHRpbWU7IHRoYXQgdGhlIHRpbWUgYmV0d2VlbiBteSBoZWFsdGggYmVnaW5uaW5nIHRv IGltcHJvdmUgYW5kIGJlIGFjdHVhbGx5IGJlaW5nIGhlYWx0aHkgd2FzIGxvbmctd2luZGVkLgoK VGhlIGFjdHVhbCB0cmVhdG1lbnQgaXMgcGVyaGFwcyBiZXR0ZXIgY2F1Z2h0IGJ5ICcncHXigJl1 JycsIHdoaWNoLCBsaWtlIGV2ZW50IGNvbnRvdXJzIGluIGdlbmVyYWwsIHB1dHMgZW1waGFzaXMg b24gdGhlIGVudGlyZSBldmVudCBhcyB1bmZvbGRpbmcgdGhyb3VnaCB0aW1lLiAnJy5paSBiYSB6 aSBjb+KAmWEgcHXigJl1IG1pIGthbnJvIGJpbnhvIC5vaScnIGV4cHJlc3NlcyBmZWFyIHRoYXQg dGhlIHBhaW5mdWwgcHJvY2VzcyBvZiBiZWNvbWluZyBoZWFsdGh5IGlzIGFib3V0IHRvIGJlZ2lu LiBUaGUgeDIgaXMgZmlsbGVkIGJ5IGEgc2VxdWVuY2Ugb2Ygc3RhZ2VzLCB3aGljaCBjYW4gYmUg bWFkZSBieSBpbnRlcnNwYWNpbmcgdGhlIHN0YWdlcyB3aXRoIHRoZSBub24tbG9naWNhbCBjb25u ZWN0aXZlICcnY2XigJlvJyc6ICcnemXigJl1IHB14oCZdSBtaSBrYW5ybyBiaW54byBrZWkgbG8g bnUgbWkgZmFja2kgY2XigJlvIGxvIG51IG1pIGphaSB0b2xzdGkgY2XigJlvIGxvIG51IG1pIHJl bnZpJycgbWVhbnMg4oCcc29tZXRoaW5nIGlzIGEgbG9uZyBwcm9jZXNzIG9mIG1lIGJlY29taW5n IGhlYWx0aHkgY29uc2lzdGluZyBvZiB0aGUgc3RhZ2VzIEEgKSBJIGZpbmQgb3V0IEIgKSBzb21l dGhpbmcgYWJvdXQgbWUgYmVnaW5zIEMgKSBJIGVuZHVyZS7igJ0KCkZpbmFsbHksIHRoZSBzZW1h bnRpY3Mgb2YgJyd6deKAmW8nJyB0cmVhdHMgdGhlIGFic3RyYWN0aW9uIGFzIGNvbnNpc3Rpbmcg b2YgYSBudW1iZXIgb2YgcmVwZWF0ZWQgYWN0aW9uczogJydsbyB6YSdhIHpvJ3UgZGFyeGkgbG8g dGFueGUgY3Ugcmlua2EgbG8gY2EgbXUnZSBwb3JwaScnIOKAkyAiVGhlIG9ic2VydmVkIGFjdGl2 aXR5IG9mIGJlYXRpbmcgdGhlIGJveCBjYXVzZWQgaXRzIGN1cnJlbnQgYnJva2VubmVzcyIgaXMg bW9yZSBhY2N1cmF0ZSB0aGFuIHRoZSBzaW1pbGFyIHNlbnRlbmNlIHVzaW5nICcnbnUnJywgYmVj YXVzZSAnJ3p1J28nJyBtYWtlcyBpdCBleHBsaWNpdCB0aGF0IGl0IHdhcyB0aGUgcmVwZWF0aW5n IG9mIHRoZSBhY3Rpb24gb2YgYmVhdGluZywgbm90IGEgcGFydGljdWxhciBpbnN0YW5jZSBvZiBi ZWF0aW5nIHdoaWNoIGJyb2tlIHRoZSBib3guCgoKClRoZSB4MiBvZiAnJ3p1J28nJyBpcyBlaXRo ZXIgb25lIGV2ZW50IG9yIGEgc2VxdWVuY2Ugd2hpY2ggaXMgcmVwZWF0ZWQuIFRvIGJlIHVubmVj ZXNzYXJpbHkgZXhwbGljaXQsIHdlIGNvdWxkIGhhdmUgc3RhdGVkIHRoYXQgdGhlIGNhdXNlIG9m IHRoZSBjdXJyZW50IGJyb2tlbm5lc3Mgd2FzICcnbG8gem8ndSBkYXJ4aSBsbyB0YW54ZSBrZWkg bG9udSBsYWZ0aSBsbyBncmFuYSBrZWkga3UgY2UnbyBsb251IG11dmdhdSBsbyBncmFuYSBsbyB0 YW54ZSBrZWkga3UgY2UnbycnIC4uLiBhbmQgc28gb24uCgpOb3RlIHRoZSBkaWZmZXJlbmNlIGJl dHdlZW4gJydtdeKAmWUgYmFqcmEnJywgJyd6YeKAmWkgYmFqcmEnJywgJydwdeKAmXUgYmFqcmEn JywgJyd6deKAmW8gYmFqcmEnJyBhbmQgJydudSBiYWpyYScnOiBUaGUgcG9pbnQtbGlrZSBldmVu dCBvZiBydW5uaW5nIHB1dHMgZW1waGFzaXMgb24gdGhlIGV2ZW50IGhhcHBlbmluZywgYnV0IG5v dGhpbmcgZWxzZS4gVGhlIHN0YXRlIG9mIHJ1bm5pbmcgYmVnaW5zIHdoZW4gdGhlIHJ1bm5lciBi ZWdpbnMgYW5kIHN0b3BzIHdoZW4gdGhlIHJ1bm5lciBzdG9wcy4gVGhlIHByb2Nlc3Mgb2YgcnVu bmluZyBjb25zaXN0cyBvZiBhIHdhcm0tdXAsIGtlZXBpbmcgYSBzdGVhZHkgc3BlZWQsIGFuZCB0 aGUgZmluYWwgc3ByaW50LiBUaGUgYWN0aXZpdHkgb2YgcnVubmluZyBjb25zaXN0cyB0aGUgY3lj bGVzIG9mIGxpZnRpbmcgb25lIGZvb3QsIG1vdmluZyBpdCBmb3J3YXJkLCBkcm9wcGluZyBpdCBk b3duLCByZXBlYXQgd2l0aCB0aGUgb3RoZXIgZm9vdC4gQWxsIG9mIHRoZXNlIGFzcGVjdHMgYXJl IHNpbXVsdGFuZW91c2x5IGNvdmVyZWQgYnkgdGhlIGV2ZW50IG9mIHJ1bm5pbmcsICcnbnUgYmFq cmEnJy4KCgoKQW5vdGhlciB0eXBlIG9mIGFic3RyYWN0b3IgaXMgdGhlIGV4cGVyaWVuY2UgYWJz dHJhY3RvciwgJydsaSdpJyc6CgonJ19fbGknaV9fJyc6IEV4cGVyaWVuY2UgYWJzdHJhY3Rvcjog eDEgaXMgeDIncyBpbnRlcm5hbCBleHBlcmllbmNlIG9mIEJSSURJCgpBbiBleHBlcmllbmNlIGNh biBiZSBjb25zaWRlcmVkIGFuIGV2ZW50IHR5cGUuIEl0IGhhcyBhbG1vc3QgdGhlIHNhbWUgYXR0 cmlidXRlczogSXQncyBwbGFjZWQgaW4gc3BhY2UsIHRoZXJlJ3MgZm9jdXMgb24gdGhlIHRpbWUg b3ZlciB3aGljaCBpdCB1bmZvbGRzLCBhbmQgaXQncyBub3QgYSBmdW5jdGlvbi4KClVubGlrZSBl dmVudCBhYnN0cmFjdGlvbnMsIGhvd2V2ZXIsIGFuIGV4cGVyaWVuY2UgaXMgZXhwbGljaXRseSBt ZW50YWwgLSBhICcnbGknaScnLWFic3RyYWN0aW9uIGNhbm5vdCBiZSBzYWlkIHRvIGV4aXN0IG91 dHNpZGUgdGhlIG1pbmQgb2YgYSBwZXJzb24uIFRoaXMgZGlmZmVyZW5jZSBpcyBwdXJlbHkgc2Vt YW50aWMsIGFuZCBleGNoYW5naW5nIGV2ZW50IGFuZCBleHBlcmllbmNlIGFic3RyYWN0b3JzIHdv dWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgdHlwZSBmYWlsdXJlIGluIHRoZSBzYW1lIHNlbnNlIGFz ICcnbWkga2FrbmUgbG8gbnUuLi4nJy4gSXQgbWlnaHQgbm90IG1ha2Ugc2Vuc2UsIGFzIGluICcn bG8ga2FjbWEgY3UgdnJlamkgbG8gbGknaSBsbyBtaSBwZW5kbyBjdSBjbGl2YSBrZWkgbWknJyAt ICJBIGNhbWVyYSByZWNvcmRlZCBteSBleHBlcmllbmNlIG9mIG15IGZyaWVuZCBsZWF2aW5nIi4g QnV0IHRoZW4gYWdhaW4sIGNpbmVtYSBpcyBkZXBlbmRlbnQgb24gY2FtZXJhcyBiZWluZyBhYmxl IHRvIHJlY29yZCB0aGUgYWN0b3JzJyBlbW90aW9ucy4KCkl0IGRvZXMsIEkgdGhpbmssIG1ha2Ug Y29tcGxldGUgc2Vuc2UgdG8gd3JpdGUgJydtaSBjaWtzaSBsbyBsaSdpIGxvIG1pIHBlbmRvIGN1 IGNsaXZhIGtlaSBtaScnLCAnJ2xvIGxpJ2kgbG8gbWkgdHVuYmEgY3UgbW9yc2kgY3UgbXVrdGkg bG8gbnUgbWkgY2F0cmEnJywgIGFuZCB0aGUgbGlrZS4KCicnbGknaScnIGlzIGRlcml2ZWQgZnJv bSAnJ2xpZnJpJycsIGFuZCBpcyBpbmRlZWQgYSAnJ3NlIGxpZnJpJycgLSBhbiBleHBlcmllbmNl LgoKCgpBICcnZHUndScnLWFic3RyYWN0aW9uIGlzIHByb2JhYmx5IHRoZSBvdGhlciBraW5kIG9m IGFic3RyYWN0aW9uIHlvdSdyZSB1c2VkIHRvIHNlZWluZywgYmVzaWRlICcnbnUnJy4KCicnX19k dSd1X18nJzogQnJpZGkgYWJzdHJhY3RvcjogeDEgaXMgdGhlIGJyaWRpIG9mIEJSSURJLCBhcyBy ZXByZXNlbnRlZCBieSB0ZXh0IHgyCgpBY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkLCBhYnN0cmFj dGlvbnMgbGlrZSB0cnV0aHMsIGxpZXMsIHRoaW5ncyBiZWluZyBkaXNjb3ZlcmVkIG9yIHRoaW5n cyBiZWluZyBiZWxpZXZlZCBhcmUgYWxsIHB1cmUgYnJpZGk6CgonJy51aSBzYWkgemkgZmFja2kg bG8gZHXigJl1IHppIGNpdGthIGxvIGNpZGpycGl0c2EnJyDigJMg4oCcWWVzISBJIGp1c3QgZm91 bmQgb3V0IHRoYXQgcGl6emEgd2lsbCBiZSBlYXRlbiBzb29uIeKAnQoKJydtaSBrcmljaSBsbyBk dSd1IGxhIHR1cm5pIGN1IHpiYXN1IHBpIHJvIGxvIG11bmplIHppJ28nJyAtICJJIGJlbGlldmUg VGhlIExvcmQgY3JlYXRlZCBhbGwgb2YgdGhlIHVuaXZlcnNlIgoKV2hhdCBpcyBiZWluZyBkaXNj b3ZlcmVkIG9yIGJlbGlldmVkIGlzIHRoZSB0cnV0aCBvZiBhbiBhYnN0cmFjdCBicmlkaSwgc28g JydkdSd1JycgaXMgYXBwcm9wcmlhdGUuCgpBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBkZWZpbml0 aW9uIG9mIOKAmOKAmWR14oCZdeKAmeKAmSwgdGhlIHgyIG9mICcnZHUndScnIGlzIHVzZWQgZm9y IHRoZSB0ZXh0IGluIHdoaWNoIHRoZSBicmlkaSBpcyBjb250YWluZWQuIEFzIHN0YXRlZCBiZWZv cmUsIHRoZSBuYXR1cmUgb2YgdGV4dHMgaXMgaGFyZCB0byBuYWlsIGRvd24sIGJ1dCBpbiBwcmFj dGljZSwgJydkdSd1JycncyB4MiBjYW4gYmUgdXNlZCB0byBleHByZXNzIGluZGlyZWN0IHF1b3Rh dGlvbjoKCicnLnVlIGRvIHB1IGN1c2t1IGt1J2kgbG8gc2UgZHUndSBkbyBuZWxjaSBsbyBja2Fm aScnIC0gIk9oISBCdXQgeW91IHNhaWQgdGhhdCB5b3UgbGlrZWQgY29mZmVlISIKCgoKT3V0IG9m IG9ibGlnYXRpb24sIHRoaXMgbGVzc29uIHdpbGwgaW5jbHVkZSB0aGUgdHJ1dGggdmFsdWUgYWJz dHJhY3RvciwgJydqZWknJy4gTGV0J3Mgc2VlIHRoZSBkZWZpbml0aW9uOgoKJydfX2plaV9fJyc6 IFRydXRoIGFic3RyYWN0aW9uOiB4MSBpcyB0aGUgdHJ1dGggdmFsdWUgb2YgQlJJREkgdW5kZXIg ZXBpc3RlbW9sb2d5IHgyCgonJ2plaScnIGlzIHJhcmVseSB1c2VkLCBub3QgYmVjYXVzZSB0cnV0 aCBhYnN0cmFjdGlvbnMgYXJlIGluZnJlcXVlbnRseSBuZWVkZWQsIGJ1dCBiZWNhdXNlIG1vc3Qg TG9qYmFuaXN0cyB1c2Ugb3RoZXIgbWVjaGFuaXNtcyB0byBvYnRhaW4gdGhlbS4gVGhlIHJlYWwg dXNlIG9mICcnamVpJycgaXMgd2hlbmV2ZXIgYSB0cnV0aCB2YWx1ZSB3aGljaCBpcyBub3QgInRy dWUiIG9yICJmYWxzZSIgaXMgbmVlZGVkLCBpLmUuIHByYWN0aWNhbGx5IG5ldmVyLiBJJ2xsIGdp dmUgYSBjb3VwbGUgb2YgZXhhbXBsZXM6CgonJ21pIGRpJ2kgcGVuc2kgbG8gamVpIG1pIG1lcmtv JycgLSAiSSBvZnRlbiB0aGluayBhYm91dCB3aGV0aGVyIEkgYW0gQW1lcmljYW4gb3Igbm90IiAo Y29udHJhc3Qgd2l0aCAiSSBvZnRlbiB0aGluayBhYm91dCBob3cgQW1lcmljYW4gSSBhbSIsIHdo aWNoIHVzZXMgYW4gYW1vdW50IGFic3RyYWN0aW9uLCBub3QgYSB0cnV0aCB2YWx1ZSkKCicnbGkg cGkgYmkgamVpIGxhIHRpbmppbiBjdSBtaWtjZScnIC0gIkl0J3MgODAlIHRydWUgdGhhdCBUaW5k amluIGlzIGEgZG9jdG9yIiAod2hhdGV2ZXIgdGhhdCBtaWdodCBtZWFuKQoKCgpUbyBjb25jbHVk ZSB0aGlzIGxlc3NvbiwgdGhlIGFic3RyYWN0b3IgJydzdSd1JycgaXMgYSB1bml2ZXJzYWwgYWJz dHJhY3Rvciwgd2hvc2UgeDIgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSBob3cgdGhlIGFic3RyYWN0 aW9uIHNob3VsZCBiZSBjb25zaWRlcmVkIC0gZm9yIGV4YW1wbGUsIHdoaWNoIHR5cGUgdGhlIGFi c3RyYWN0aW9uIGlzLiBJdCBoYXMgYWxyZWFkeSBiZWVuIGRlZmluZWQsIGJ1dCB3ZSBtaWdodCBh cyB3ZWxsIGRvIGl0IGFnYWluOgoKJydfX3N1J3VfXycnOiBVbml2ZXJzYWwgYWJzdHJhY3RvciB4 MSBpcyB0aGUgYWJzdHJhY3Rpb24gb24gQlJJREkgY29uc2lkZXJlZCBhcyB4MiAvIHgxIGlzIHRo ZSBhYnN0cmFjdGlvbiBvZiBCUklESSBvZiB0eXBlIHgyLgoKVGhlIGlkZWEgb2YgdGhpcyBhYnN0 cmFjdGlvbiBpcyBlYXN5LCBzbyBJJ2xsIGp1c3QgZ2l2ZSBhIGZldyBleGFtcGxlcyBvZiBpdCBp biB1c2UgYW5kIGxlYXZlIGl0IGF0IHRoYXQ6CgpUaGUgRW5nbGlzaCBwaHJhc2Ug4oCcdGhhdCBJ IGxvdmUgeW914oCdIGlzIGRlZmluaXRlbHkgYSBzdW10aSwgc2luY2UgaXTigJlzIG1lYW50IHRv IGZ1bmN0aW9uIGFzIGEgc3ViamVjdCBvciBvYmplY3QgaW4gYSBzZW50ZW5jZS4gSXTigJlzIGFs c28gY2xlYXJseSBtYWRlIGZyb20gYW4gYWJzdHJhY3Rpb24uIEl0IGNhbiB0aGVyZWZvcmUgYmUg dHJhbnNsYXRlZCAnJ2xvIHN14oCZdSBtaSBkbyBwcmFtaScnLiBXaXRob3V0IHRoZSBjb250ZXh0 IG9mIHRoZSBFbmdsaXNoIHNlbnRlbmNlLCB0aG91Z2gsIGl04oCZcyBoYXJkIHRvIGd1ZXNzIHdo YXQga2luZCBvZiBhYnN0cmFjdGlvbiB3YXMgbWVhbnQuIOKAnEkgd2lsbCBkaWUgaGFwcHkgYnkg dGhlIHRpbWUgdGhhdCBJIGxvdmUgeW91LuKAnSB0cmVhdHMgdGhlIGFic3RyYWN0aW9uIGFzIGFu IGV2ZW50IGhhcHBlbmluZyBpbiB0aW1lLiDigJxUaGUgdHJ1dGggaXMgdGhhdCBJIGxvdmUgeW91 LuKAnSB0cmVhdHMgdGhlIGFic3RyYWN0aW9uIGxpa2UgYSBicmlkaSwgd2hpY2ggY2FuIGJlIGNv bnNpZGVyZWQgdHJ1ZSBvciBmYWxzZS4gIllvdSBkb24ndCBrbm93IGhvdyBtdWNoIEkgbG92ZSB5 b3UiIHRyZWF0cyB0aGUgKG5lYXJseSBpZGVudGljYWwpIGFic3RyYWN0aW9uIGFzIGFuIGFtb3Vu dC4gVXNpbmcgdGhlIHNlY29uZCBzdW10aSBwbGFjZSBvZiBzdeKAmXUsIHRoZXNlIGNhbiBiZSBl eHBsaWNpdGx5IGRpZmZlcmVudGlhdGVkOgoKJydsbyBzdeKAmXUgbWkgZG8gcHJhbWkga2VpIGJl IGxvIGZhc251JycgaXMgYW4gZXZlbnQuCgonJ2xvIHN14oCZdSBtaSBkbyBwcmFtaSBrZWkgYmUg bG8gYnJpZGknJyBpcyBhIGJyaWRpLgoKJydsbyBzdeKAmXUgbWkgZG8gcHJhbWkga2VpIGJlIGxv IGtsYW5pJycgaXMgYW4gYW1vdW50LgoKVXNpbmcgJydzdeKAmXUnJyB0aGlzIHdheSwgdGhlIHNl bWFudGljICh0aG91Z2ggbm90IGdyYW1tYXRpY2FsKSByYW5nZSBvZiBhbGwgYWJzdHJhY3RvcnMg Y2FuIGJlIGNvdmVyZWQuIE1vcmUgdXN1YWxseSwgdGhvdWdoLCBvdGhlciBhYnN0cmFjdG9ycyBh cmUgdXNlZC4KCkZpbmFsbHksIExvamJhbmlzdCBKLiBDb3dhbiB0cmFuc2xhdGVkIHRoZSB0aXRs ZSBvZiB0aGUgYm9vayBUaGUgQ3J1Y2lmaXhpb24gb2YgSmVzdXMgQ29uc2lkZXJlZCBBcyBBIERv d25oaWxsIEJpY3ljbGUgUmFjZSBhcyAnJ2xvIHN1J3UgbGEgLmllY3Vhcy4ga3VjdGFpIHNlbGNh dHJhIGtlaSBiZSBsbyBzYeKAmW9yZHppZmEnYSBrZSBuYWxtYXRtYSdlIHN1dHl0ZXJqdmknJy4K CgoKCgohIUxvamJhbiBMZXNzb25zIC0gTGVzc29uIHRoaXJ0eSAoc2VtYW50aWNzIG9mIGZ1bmN0 aW9ucykKCkZ1bmN0aW9ucyBhcmUgYSBncm91cCBvZiB0d28tdGhyZWUgdHlwZXMgb2YgYWJzdHJh Y3Rpb25zLiBUaGUgdGVybSdzIG5vdCBvZmZpY2lhbCwgYnV0IEknbGwgdXNlIGl0IGhlcmUgYW55 d2F5LgoKVGhlIGRlZmluaXRpb24gb2YgZnVuY3Rpb25zIGlzIGNsb3NlbHkgcmVsYXRlZCB0byB0 aGUgbmVhdCBsaXR0bGUgd29yZCAnJ2NlJ3UnJy4gJydjZSd1JycgaXMgYSBzdW1rYSdpIHdoaWNo IGZpbGxzIG9uZSBzdW10aSBwbGFjZS4gSXQncyBvbmx5IGZvdW5kIHVzYWdlIGluc2lkZSBhYnN0 cmFjdGlvbnMgd2hpY2ggYXJlIGFsc28gZnVuY3Rpb25zLiBBbGwgZnVuY3Rpb25zIGNhbiBoYXZl IGF0IGxlYXN0IG9uZSAnJ2NlJ3UnJyBzb21ld2hlcmUgaW4gdGhlIGFic3RyYWN0aW9uIC0gdGhh dCdzIHdoYXQgbWFrZXMgdGhlbSBmdW5jdGlvbnMuIFRoZSAnJ2NlJ3UnJyBjYW4gYmUgZWxpZGVk LCBpbiB3aGljaCBjYXNlIGl0J3MgbW9zdCBvZnRlbiBhc3N1bWVkIHRvIGZpbGwgdGhlIGZpcnN0 IGVsaWRlZCBzdW10aSBwbGFjZSBvZiB0aGUgZnVuY3Rpb24sIHVubGVzcyBjb250ZXh0IHByb3Zp ZGVzIGEgbW9yZSByZWFzb25hYmxlIGFsdGVybmF0aXZlLgoKV2hhdCBkb2VzIGl0IGFjdHVhbGx5 IGRvPyBMZXQncyBoYXZlIGEgbG9vayBhdCBpdHMgZGVmaW5pdGlvbjoKCicnX19jZSd1JydfXzog UHNldWRvLXF1YW50aWZpZXIgYmluZGluZyBhIHZhcmlhYmxlIHdpdGhpbiBhbiBhYnN0cmFjdGlv biB0aGF0IHJlcHJlc2VudHMgYW4gb3BlbiBwbGFjZS4KCldlbGwsIHRoYXQgd2Fzbid0IHZlcnkg aGVscGZ1bCwgc28gbGV0IG1lIHRyeSBleHBsYWluaW5nIGl0IHdpdGggYW5vdGhlciBhcHByb2Fj aDoKClB1dHRpbmcgJydjZSd1JycgaW4gYSBzdW10aSBwbGFjZSBsZWF2ZXMgdGhlIHN1bXRpIHBs YWNlIGVtcHR5LiBUaGUgcGxhY2UgaXMgbm90IGVyYXNlZCwgbGlrZSBpZiB5b3UgZmlsbCBpdCB3 aXRoICcnemknbycnLCBidXQgdGhlIHBsYWNlIGlzIG5vdCBmaWxsZWQgd2l0aCBhbnl0aGluZyAt IG5vdCBhIHNwZWNpZmljIHRoaW5nLCBub3QgYSAnJ3p1J2knJywgbm90IGEgICcnem8nZScnLCBu b3RoaW5nLiBJbiB0aGF0IG1hbm5lciwgdGhlIGVtcHR5IHN1bXRpIHBsYWNlcyBhcmUgcmVtaW5p c2NlbnQgb2YgdGhlIHgxLCB4MiwgYW5kIHgzJ3Mgd2UgcHV0IGluIHRoZSBzdW10aSBwbGFjZXMg b2YgRW5nbGlzaCBkZWZpbml0aW9ucyBvZiBicml2bGEgLSBtYXJraW5nICJUaGlzIGlzIHdoZXJl IHNvbWV0aGluZyBlbHNlIGNhbiBiZSBwdXQiLgoKVGh1cyAnJ21pIGNpdGthIGxvIHRpIGJhZG5h JycgaXMgIkkgZWF0IHRoaXMgYmFuYW5hIiwgYnV0ICcnbWkgY2l0a2EgY2UndScnIGlzICJJIGVh dCBYIi4KCk9mIGNvdXJzZSwgIkkgZWF0IFgiIGlzIG1lYW5pbmdsZXNzIHVubGVzcyB0aGF0IFgg aXMgZmlsbGVkIGJ5IHNvbWV0aGluZywgYW5kIGluZGVlZCB0aGUgc2VudGVuY2UgJydtaSBjaXRr YSBjZSd1JycgaXMgc2Vuc2VsZXNzIGluIExvamJhbiBhcyB3ZWxsLgoKCgpJbiBvcmRlciB0byBw dXQgaXQgdG8gdXNlLCB3ZSBuZWVkIGEgZnVuY3Rpb24gYWJzdHJhY3Rpb24uIFdlJ2xsIGJlZ2lu IHdpdGggdGhlIG1vc3Qgb2Z0ZW4tdXNlZDogVGhlIHNlbGJyaSBhYnN0cmFjdGlvbiAnJ2thJycu IExldCdzIHNlZSBpdHMgb2ZmaWNpYWwgZ2xvc3M6CgonJ19fa2FfXycnIFByb3BlcnR5L3F1YWxp dHkgYWJzdHJhY3RvciAoLW5lc3MpOyB4MSBpcyBxdWFsaXR5L3Byb3BlcnR5IGV4aGliaXRlZCBi eSBCUklESS4KClVuZGVyIHRoZSB1bmRlcnN0YW5kaW5nIHdoaWNoIEkgd2lsbCB0ZWFjaCwgdGhp cyBnbG9zcyBpcyBtaWxkbHkgbWlzbGVhZGluZy4gSW5zdGVhZCwgJydrYScnIHNob3VsZCBwcm9i YWJseSBiZSBnbG9zc2VkIHN1Y2g6CgonJ19fa2FfXycnIFByZWRpY2F0ZS9zZWxicmkgYWJzdHJh Y3RvcjogeDEgaXMgdGhlIHByZWRpY2F0ZS9zZWxicmkgb2YgQlJJREkgKG5lZWRzIGF0IGxlYXN0 IG9uZSBvcGVuIHZhcmlhYmxlIGkuZS4gYSAiY2UndSIpCgpVc2luZyBhIHNlbGJyaSBhYnN0cmFj dGlvbiwgIkkgZWF0IFgiIGNhbiBtYWtlIHNlbnNlLCBhcyBpbiB0aGUgZm9sbG93aW5nIGV4YW1w bGU6CgonJ19fY2thamlfXycnIHgxIGlzIGNoYXJhY3Rlcml6ZWQgYnkgc2VsYnJpIHgyCgonJ2xv IHRpIGJhZG5hIGN1IGNrYWppIGxvIGthIG1pIGNpdGthIGNlJ3UnJyAtICJUaGlzIGJhbmFuYSBp cyBjaGFyYWN0ZXJpemVkIGJ5IHRoZSBzZWxicmk6ICJJIGVhdCBYIiIsIHdoaWNoIG1heSBiZSBy ZXBocmFzZWQgYXMgIlRoaXMgYmFuYW5hIGZpdHMgdGhlIHNlbGJyaTogIkJlaW5nIGVhdGVuIGJ5 IG1lIiIsIHdoaWNoIGlzIG9mIGNvdXJzZSBlcXVpdmFsZW50IHRvICcnbWkgY2l0a2EgbG8gdGkg YmFkbmEnJyAtICJJIGVhdCB0aGlzIGJhbmFuYSIuCgpGb3IgdGhlIHN0YXRlbWVudCB0byBtYWtl IHNlbnNlLCB0aGUgc3VtdGkgcGxhY2UgaGVsZCBvcGVuIGJ5ICcnY2UndScnIHVzdWFsbHksIGJ1 dCBub3QgYWx3YXlzLCBtdXN0IGJlIGZpbGxlZCBieSBzb21ldGhpbmcuIFRoZSBtYWluIHNlbGJy aSBvZiB0aGUgc3RhdGVtZW50LCBpbiB0aGlzIGNhc2UgJydja2FqaScnLCBnaXZlcyB1cyBhIGNs dWUgaG93IHRvIGZpbGwgdGhlIG9wZW4gc3VtdGkgcGxhY2UuIFN1Y2ggc2VsYnJpIGFsbW9zdCBh bHdheXMgZmlsbCBpdCB3aXRoIGEgc3VtdGkgZnJvbSB0aGUgbWFpbiBzZWxicmkuIEhvdyAnJ2Nl J3UnJyBpcyBnaXZlbiBhIG5vbi16ZXJvIHZhbHVlIGhhcyBiZWVuIGEgc3ViamVjdCBvZiBtaW5v ciBkZWJhdGUgaW4gTG9qYmFuaXN0YW4sIGJ1dCB0aGUgaXNzdWUgaXMgbW9yZSBvciBsZXNzIHNl dHRsZWQ6ICcnY2UndScnIGtlZXBzIGEgc3VtdGkgcGxhY2Ugb3BlbiwgYW5kIHRoZSBtYWluIHNl bGJyaSB0aGVuIGZpbGxzIGl0IHdpdGggc29tZXRoaW5nLCBhbmQgd2hhdCBmaWxscyB0aGUgcGxh Y2UgZGVwZW5kcyBvbiB0aGUgc2VsYnJpIGluIHF1ZXN0aW9uLgoKCgpUaG91Z2ggaXQgb2Z0ZW4g aXMsIHRoZSAnJ2NlJ3UnJyBwbGFjZSBuZWVkIG5vdCBhbHdheXMgYmUgZmlsbGVkIGJ5IHRoZSBz ZWxicmkgaW4gb3JkZXIgZm9yIHRoZSBhYnN0cmFjdGlvbiB0byBtYWtlIHNlbnNlOiBPbiBpdHMg b3duLCAnJ2xvIGthIGNlJ3UgdGUgdmVjbnUgbG8gZmlucGUnJyBtZWFuczogImJ1eWluZyBhIGZp c2giLCBvciAidG8gYnV5IGEgZmlzaCIuIFRoaXMgY2FuIGJlIHVzZWQgaW4gYSBzZW50ZW5jZSB3 aXRob3V0IHRoZSBzZWxicmkgZmlsbGluZyB0aGUg4oCY4oCZY2XigJl14oCZ4oCZIGluOgoKJyds byBzZSBsaXNyaSBjdSBzcmFuYSBsbyBrYSBjZSd1IHRlIHZlY251IGxvIGZpbnBlJycgLSAiVGhl IHBsb3QgaXMgYWJvdXQgYnV5aW5nIGEgZmlzaCIuIEhlcmUsICcnc3JhbmEnJyBkb2VzIG5vdCBh cHBseSBhbnl0aGluZyB0byB0aGUgJydjZSd1JyctcGxhY2UsIGFuZCB0aGUgYWJzdHJhY3Rpb24g aXMgaW5zdGVhZCBzZWVuIGFzIHRoZSBzZWxicmkgb24gaXRzIG93bi4KCgoKQW4gYWx0ZXJuYXRp dmUgd2F5IG9mIGV4cGxhaW5pbmcgJydjZSd1JycgaXMgYnkgcmVnYXJkaW5nIHRoZSB3b3JkIGFz IHJlcHJlc2VudGluZyB2YXJpYWJsZXMgaW4gYSBsYW1iZGEgZnVuY3Rpb24uIEZvciBpbnN0YW5j ZSwgY29uc2lkZXIgdGhlIHNlbnRlbmNlOgoKJydsYSAuYWxpcy4gY3UgZGppY2EgbG8ga2EgY2Un dSB0ZSB2ZWNudSBsbyBmaW5wZScnIC0gIkFsaWNlIHdhbnRzIHRvIGJ1eSBhIGZpc2giCgpIZXJl LCB0aGUgZmlyc3QgYXJndW1lbnQgb2YgJydkamljYScnIGlzIHRoZSBvbmUgd2hvIHdhbnRzIHNv bWV0aGluZywgbmFtZWx5IEFsaWNlLiBUaGUgc2Vjb25kIGFyZ3VtZW50IGlzIHRoZSBzZWxicmkg dGhhdCBBbGljZSB3YW50cyB0byBmdWxmaWxsOiBCdXlpbmcgYSBmaXNoLgoKV2UgY2FuIHZpZXcg JydjZSd1JycgYXMgYSBmcmVlIHZhcmlhYmxlLCB3aGljaCB0aGVuIGJlY29tZXMgYm91bmQgYnkg YSBsYW1iZGEgYWJzdHJhY3Rpb24sIG5hbWVseSAnJ2thJycuICBOb3csICcna2EgY2UndSB0ZXJ2 ZSd1IGxvIGZpbnBlJycgY2FuIGJlIHNlZW4gYXMgYSBsYW1iZGEgZnVuY3Rpb246CgogICAgXCB4 IC0+IHRlIHZlY251KHgsbG8gZmlucGUsem8nZSx6bydlKSwKCmFuZCBpbiB0aGlzIGNhc2UgJydk amljYScnIHN1cHBsaWVzIHRoZSBsYW1iZGEgZnVuY3Rpb24gd2l0aCBBbGljZS4KCgoKTGFtYmRh cyBjYW4gYmUgc3RvcmVkLCBhbGxvd2luZyB0aGVtIHRvIGJlIHBhc3NlZCBhcm91bmQgYW5kIHVz ZSB0aGVtIGluIHZhcmlvdXMgc2l0dWF0aW9uczoKCicnY2EnZSBrbydhIGthIGNlJ3UgZGFuc3Ug LmkgbWkga28nYSBja2FqaSAuaSBkbyBrbydhIGRqaWNhIC5pIG1hJ2Ega28nYSBrYWtuZScnICAt IOKAnEl0IGlzIGRhbmNpbmcuIEkgYW0gZG9pbmcgaXQuIFlvdSB3YW50IGl0LiBFdmVyeW9uZSBj YW4gZG8gaXQuIgoKCgpOb3csIHVzaW5nICcna2EnJywgeW91IGNhbiBjb3JyZWN0bHkgcGhyYXNl ICJJIGNhbiBydW4gb24gbXkgYXJtcyIuIEhvdz8KCkFuc3dlcjogfn5ncmV5LGdyZXk6bWkga2Fr bmUgbG8ga2Ege2NlJ3V9IGJhanJhIGZpIGxvIG1pIGJpcmthfn4KCgoKQSBsb3Qgb2Ygb2Z0ZW4t dXNlZCBnaXNtdSB0YWtlIHNlbGJyaSBhcyBvbmUgb2YgdGhlaXIgc3VtdGksIHdoaWNoIG1lYW5z ICcnbG8ga2EnJyBpcyB1c2VkIHF1aXRlIG9mdGVuLiBBIGZldyBub3RhYmxlIGV4YW1wbGVzIGFy ZSAnJ3Ryb2NpJycsICcna2FrbmUnJywgJydkamljYScnLCAnJ3p1a3RlJycsICcnc25hZGEnJyBh bmQgJydmcmF4dScnOgoKJydsbyBrYXNsaSBuYeKAmWUga2FrbmUgbG8ga2Egc2lsY3UgbGEnZSBs YSdvaSBYLWZpbGVzJycgLSAiVGhlIGRvbmtleSBjYW5ub3Qgd2hpc3RsZSB0aGUgWC1maWxlcyBz b25nIgoKCgonJy5lJ28ga28gbG8gamFpIHNlIHpnaWtlIGN1IGZyYXh1IGxvIGthIGRhcnhpIGxv IGRhbXJpIGNhIGxvIG51IGRvIHNpcG5hJycgLSAiUGxlYXNlIGZvcmdpdmUgdGhlIG11c2ljaWFu IGZvciBzdHJpa2luZyB0aGUgZHJ1bSB3aGVuIHlvdSB3ZXJlIHNsZWVwaW5nISIKCgoKQXQgbGVh c3Qgb25lIHNlbGJyaSBjYW4gZmlsbCB0d28gJydjZSd1Jycgd2l0aGluIGEga2EtYWJzdHJhY3Rp b24sIG5hbWVseSDigJjigJlzaW14deKAmeKAmS4gV2hhdCBkb2VzIHRoZSBmb2xsb3dpbmcganVm cmEgbWVhbj8KCgoKJydtaSBsbyBwYW1wZSdvIGN1IHNpbXh1IGxvIGthIHtjZSd1IGNlJ3V9IGds ZXR1JycKCkFuc3dlcjogfn5ncmV5LGdyZXk6JydNZSBhbmQgbXkgbG92ZXIgaGF2ZSBzZXggd2l0 aCBlYWNoIG90aGVyIG11dHVhbGx5In5+CgoKCk9mIGNvdXJzZSwgdGhlICcnY2UndScnIG5lZWQg bm90IGJlIHBsYWNlZCBpbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSAnJ2thJyctYWJzdHJhY3Rpb24s IHRob3VnaCBpdCBpcyBieSBkZWZhdWx0LiBPbmUgY291bGQgdmVyeSB3ZWxsIHNwZWFrIG9mOgoK JydsbyBrYSBsYSAuYmFiLiBtZWxiaSBjZSd1JycgLSAiVGhlIHNlbGJyaSBvZjogIkJvYiBpcyBi ZWF1dGlmdWwgYWNjb3JkaW5nIHRvIFgiIiwgb3IgaW4gb3RoZXIgd29yZHM6ICJUaGlua2luZyB0 aGF0IEJvYiBpcyBiZWF1dGlmdWwiLgoKSW5kZWVkLCBtb3ZpbmcgdGhlICcnY2UndScnIGFyb3Vu ZCBpbiBhbiBmdW5jdGlvbiBjcmVhdGVzIHZlcnkgZGlmZmVyZW50IG1lYW5pbmdzOgoKJydsbyBr YSBjZSd1IHBhbnppIGxhIC5tYWlrLicnIC0gIlRoZSBzZWxicmk6ICJYIGlzIGEgY2hpbGQgb2Yg TWlrZSIiID0gIkJlaW5nIE1pa2UncyBjaGlsZCIsIHZlcnN1cwoKJydsbyBrYSBsYSAubWFpay4g cGFuemkgY2UndScnIC0gIlRoZSBzZWxicmk6ICJNaWtlIGlzIGEgY2hpbGQgb2YgWCIiID0gIkJl aW5nIHRoZSBwYXJlbnQgb2YgTWlrZSIuCgpPbmUgY291bGQgZXZlbiBpbWFnaW5lIGEgc3RhdGVt ZW50IGluIHdoZXJlIHRoZSAnJ2NlJ3UnJyBpcyBwbGFjZWQgaW4gYSB2ZXJ5IHVuY29udmVudGlv bmFsIHBsYWNlLCB0aGF0IG5vbmV0aGVsZXNzIGlzIHF1aXRlIGludHVpdGl2ZToKCicnbWkgLmUg bmFpIGRvIGNrYWppIGxvIGthIGxvIGJydW5hIGN1IGpib2NyZScnLCB3aGVyZWluIHRoZSAnJ2Nl J3UnJyBpcyBlbGlkZWQsIGJ1dCBtb3N0IHByb2JhYmx5IGhpZGluZyBpbiAnJ2xvIGJydW5hIGJl IGNlJ3UnJywgdGhlcmVmb3JlIG1lYW5pbmcgIkkgYW5kIG5vdCB5b3UgaXMgY2hhcmFjdGVyaXpl ZCBieSB0aGUgc2VsYnJpOiAiVGhlIGJyb3RoZXIgb2YgWCBpcyBnb29kIGF0IExvamJhbiIiLCB3 aGljaCBpcyB0aGUgc2FtZSBhcyAiSSBoYXZlIGEgYnJvdGhlciB3aG8ncyBnb29kIGF0IExvamJh biwgYnV0IHlvdSBkb24ndCIuCgoKCk9uZSBjYW4gbWFrZSBhIGZ1bmN0aW9uLCBsaWtlIGEgImth Ii1hYnN0cmFjdGlvbiwgYW5kIGZpbGwgYWxsIHN1bXRpIHBsYWNlcywgbGVhdmluZyBubyBwbGFj ZSBmb3IgYSAnJ2NlJ3UnJy4gVGhlIHJlc3VsdGluZyBicmlkaSBhcmUgd2VpcmQ6CgonJ21pIGth a25lIGxvIGthIG1pIG1lcmtvIGxvIG1pIGJhbmd1JycgLSAiSSBjYW4gbXkgbGFuZ3VhZ2UgaXMg QW1lcmljYW4iLiBUaGlzIGlzIGNsZWFybHkgYSB0eXBlIGVycm9yLiBTb21lIHBlb3BsZSByZWdh cmQgZnVuY3Rpb25zIHdpdGhvdXQgYW55ICcnY2UndScnIHRvIGJlIGVxdWl2YWxlbnQgdG8gYnJp ZGkgYWJzdHJhY3Rpb25zLCBzbyB0aGF0OgoKJydtaSBrcmljaSBsbyBrYSBtaSB2cnVkZSBsYSBj ZXZuaScnIGlzIHRoZSBzYW1lIGFzICcnbWkga3JpY2kgbG8gZHUndSBtaSB2cnVkZSBsYSBjZXZu aScnIC0gIkkgYmVsaWV2ZSB0aGF0IEkgYW0gZ29vZCBpbiB0aGUgZXllcyBvZiBHb2QiLCBhbmQg aXMganVzdCBhcyBnb29kIGEgc2VudGVuY2UgaW4gTG9qYmFuIGFzIGl0cyB0cmFuc2xhdGlvbiBp cyBpbiBFbmdsaXNoLiBJbiBteSBvcGluaW9uLCBvbmUgc2hvdWxkIHJlZnJhaW4gZnJvbSB1c2lu ZyBhbnkgb2YgdGhlIGZ1bmN0aW9uIGFic3RyYWN0b3JzIGlmIG9uZSBkb2Vzbid0IHdhbnQgdG8g dXNlIGEgZnVuY3Rpb24uIElmIHlvdSBtZWFuICcnZHUndScnLCB1c2UgJydkdSd1JycuCgoKClRo ZSBvdGhlciBhYnN0cmFjdG9yIHdoaWNoIGNsZWFybHkgY2FuIHByb3ZpZGUgYSBmdW5jdGlvbiBp cyAnJ25pJycuIExpa2UgJydrYScnLCBhICcnY2UndScnIGNhbiBiZSBwbGFjZWQgaW4gYSAnJ25p JycgYWJzdHJhY3Rpb24sIGJ1dCB1bmxpa2Ugd2l0aCDigJjigJlrYeKAmeKAmSwgdXNpbmcgYSDi gJjigJljZeKAmXXigJnigJkgd2l0aCDigJjigJluaeKAmeKAmSBpcyBub3QgbWFuZGF0b3J5LiBU aHVzLCBpZiBubyAnJ2NlJ3UnJyBpcyBwbGFjZWQgaW4gYSAnJ25pJyctYWJzdHJhY3Rpb24sIG9u ZSBjYW5ub3QgYXNzdW1lIHRoYXQgaXQncyBlbGlkZWQgLSBpdCBtaWdodCBzaW1wbHkgbm90IGJl IHRoZXJlLiBJZiB0aGUgbWFpbiBzZWxicmkgaXMgbm90IG9uZSB3aGljaCBjbGVhcmx5IHRlbGxz IHVzIGhvdyB0byBmaWxsIGEgJydjZSd1JyctcGxhY2UsIHN1Y2ggYXMgJyd6bWFkdScnIG9yICcn bWxlY2EnJywgdGhlcmUncyBwcm9iYWJseSBubyAnJ2NlJ3UnJyBhdCBhbGwuCgpJbiBhbGwgb3Ro ZXIgYXNwZWN0cywgdGhlIHdheSAnJ2NlJ3UnJyB3b3JrcyB3aXRoaW4gdGhlIGFic3RyYWN0aW9u IGlzIGp1c3QgbGlrZSAnJ2thJycsIHNvIHRoZSBkaWZmZXJlbmNlIGlzIHB1cmVseSBzZW1hbnRp Y2FsLiBXaGVyZWFzICcna2EnJyBjcmVhdGVzIGEgc2VsYnJpLCAnJ25pJycgY3JlYXRlcyBhbiBh bW91bnQuIEhlcmUncyB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgd29yZDoKCgoKX18nJ25pJydfXzog QW1vdW50IGFic3RyYWN0aW9uOiB4MSBpcyB0aGUgYW1vdW50IG9mIEJSSURJIG9uIHNjYWxlIHgy CgpCZWluZyBmYW1pbGlhciB3aXRoICcna2EnJywgdGhlIHVzYWdlIG9mIOKAmOKAmW5p4oCZ4oCZ IHNob3VsZCBiZSBzdHJhaWdodGZvcndhcmQ6CgonJ21pIHptYWR1IGRvIGxvIG5pIHtjZSd1fSB4 ZWtyaScnIC0gIkkgZXhjZWVkIHlvdSBpbiBhbW91bnQ6ICJYIGlzIGJsYWNrIiIsIG9yOiAiSSdt IGJsYWNrZXIgdGhhbiB5b3UuIiBBcyBzdGF0ZWQgaW4gbGVzc29uIHR3ZW50eS1laWdodCwgYWxs IGFncmVlIHRoYXQgdGhpcyBtYWtlcyB0b3RhbCBzZW5zZSBiZWNhdXNlIHRoZSBicmlnaHRuZXNz IG9mIG9uZSdzIHNraW4gY291bGQgYmUgbWVhc3VyZWQgYnkgYSBjYW1lcmEuIEhvd2V2ZXIsIHNv bWUgcGVvcGxlIHdpbGwgbm90IGFjY2VwdCB0aGUgdW5tZWFzdXJhYmxlOgoKJydtaSB6bWFkdSBk byBsbyBuaSBtaSBwZW5kbyBsYSAubWFpay4nJyAtICJJIGFtIG1vcmUgb2YgYSBmcmllbmQgb2Yg TWlrZSB0aGFuIHlvdSBhcmUiLiBJIHRoaW5rIHVzaW5nIGFtb3VudHMgdG8gcXVhbnRpZnkgdGhl IHVubWVhc3VyYWJsZSBpcyBmaW5lLCBidXQgdGhhdCBpcyBhbiBpc3N1ZSBJIHN3ZXB0IHVuZGVy IHRoZSBjYXJwZXQgdHdvIGxlc3NvbnMgYWdvLCBhbmQgSSdtIG5vdCBnb25uYSB0YWtlIGl0IG9u IGhlcmUuCgoKCkl0J3MgYWJzb2x1dGVseSBjbGVhciwgaG93ZXZlciwgdGhhdCBpdCdzIHdyb25n IHRvIHVzZSAnJ25pJycgYXMgYSB3YXkgdG8gZW51bWVyYXRlIGhvdyBtYW55IG9iamVjdHMgZml0 IGEgc2VsYnJpIC0gaXQncyBhbHdheXMgYWJvdXQgdG8gd2hpY2ggZXh0ZW50IGNlcnRhaW4gc3Vt dGkgZml0IGEgc2VsYnJpLiBUaHVzOgoKJydkbyBtbGVjYSBtaSBsbyBuaSBwYW56aSBjZSd1Jycg bWVhbnMgIllvdSBhcmUgbGVzcyBvZiBhIHBhcmVudCB0aGFuIEkgYW0iLCBhbmQgbm90ICJZb3Ug aGF2ZSBmZXdlciBjaGlsZHJlbiB0aGFuIG1lIi4KCkluIGNhc2UgeW91J3JlIGN1cmlvdXMgKEkg d2FzKSwgdGhlIGp1ZnJhICcnem8nZSBwYW56aSBjZSd1JycgaW4gdGhlIHByZXZpb3VzIGV4YW1w bGUgYWN0dWFsbHkgcmVmZXJzIHRvIHR3byBkaXN0aW5jdCBicmlkaSwgYmVjYXVzZSB0aGUgc2Vs YnJpIGZpbGxzIHRoZSBvcGVuICcnY2UndScnLXBsYWNlIHR3aWNlLCBvbmNlIGZvciAnJ2RvJycs IGFuZCBvbmNlIGZvciAnJ21pJycsIG1ha2luZyB0aGUgdHdvIHN1Yi1icmlkaTogJyd6bydlIHBh bnppIGRvJycgYW5kICcnem8nZSBwYW56aSBtaScnLiBTaW5jZSB0aGVzZSB0d28gYnJpZGkgYXJl IGNvbnNpZGVyZWQgZGlmZmVyZW50LCB0aGUgJyd6bydlJycgbmVlZCBub3QgcmVmZXIgdG8gdGhl IHNhbWUgb2JqZWN0LgoKCgpXaGF0IGRvZXMgaXQgbWVhbiBpZiB5b3UgZG9uJ3QgdXNlIGEgJydj ZSd1JycgaW5zaWRlIGEgJyduaScnLWFic3RyYWN0aW9uPyBXZWxsLCB0aGVuIHRoZSBtYWluIHNl bGJyaSBjYW4ndCBmaWxsIGFueSBvZiB0aGUgc3VtdGkgaW4gdGhlIGFic3RyYWN0aW9uLCBzbyB3 aGVuIHVzaW5nIHNlbGJyaSBsaWtlIOKAmOKAmXptYWR14oCZ4oCZIGFuZCDigJjigJltbGVjYeKA meKAmSwgdGhlcmUncyBhIGdvb2QgY2hhbmNlIGl0IHdvbid0IG1ha2UgYW55IHNlbnNlLiBIb3dl dmVyLCBpZiAnJ25pJycgaXRzZWxmIGlzIHRoZSBtYWluIHNlbGJyaSwgaXQncyB0b3RhbGx5IGZp bmUgdG8gYXZvaWQgdXNpbmcgYW55ICcnY2UndScnIGF0IGFsbDoKCicnbGkgZHUnZSBuaSBkbyBu ZWxjaSBsbyB2YW5qdScnIC0gIllvdSBsaWtlIHdpbmUgdG9vIG11Y2giCgoKClRoZSBsYXN0IG9m IHRoZSBhYnN0cmFjdG9ycyB3ZSB0cmVhdCBpbiB0aGlzIGxlc3NvbiBpcyAnJ3NpJ28nJywgdGhl IGNvbmNlcHQgYWJzdHJhY3Rvci4gJydzaSdvJycgbWF5IGJlIGNvbnNpZGVyZWQgYSBmdW5jdGlv biwgb3IgaXQgbWF5IG5vdCBiZSBjb25zaWRlcmVkIGEgZnVuY3Rpb24uIEEgJydzaSdvJyctYWJz dHJhY3Rpb24gY2VydGFpbmx5IGNvbnRhaW5zIGEgJydjZSd1JycgLSBpbiBmYWN0LCB1bmRlciB0 aGUgdW5kZXJzdGFuZGluZyB3aGljaCBJIGFtIHRlYWNoaW5nLCBhICcnc2knbycnLWFic3RyYWN0 aW9uIGFsd2F5cyBjb250YWlucyBub3RoaW5nIGJ1dCAnJ2NlJ3UnJ3MhIFRoZXNlICcnY2UndScn cywgdW5saWtlIHRob3NlIG9mICcna2EnJyBvciAnJ25pJycsIHJlbWFpbiBvcGVuIGFuZCBjYW5u b3QgYmUgZmlsbGVkIGJ5IGFueSBzZWxicmkuIEluIG90aGVyIHdvcmRzLCB0aGUgZnVuY3Rpb24g Y2Fubm90IGJlIGFwcGxpZWQgdG8gYW55dGhpbmcsIHdoaWNoIGlzIHdoYXQgbWFrZXMgaXQgYSBt YXliZS1mdW5jdGlvbi4KCicnX19zaSdvX18nJyBDb25jZXB0IGFic3RyYWN0b3I6IHgxIGlzIHgy J3MgY29uY2VwdCBvZiBCUklESQoKTGV0J3MgaGF2ZSBhIGZldyBleGFtcGxlczoKCicnbG8gc2kn byB4ZWJuaScnLCB3aGljaCwgYmVjYXVzZSBhbGwgdGhlIHN1bXRpIHBsYWNlcyBhcmUgZmlsbGVk IHdpdGggJydjZSd1JycgaXMgZXF1aXZhbGVudCB0bzoKCicnbG8gc2knbyBjZSd1IHhlYm5pIGNl J3UnJyAtICJUaGUgY29uY2VwdCBvZjogIlggaGF0ZXMgWSIiID0gIlRoZSBjb25jZXB0IG9mIGhh dGUiID0g4oCcSGF0ZeKAnQoKCgpUaGUgbXl0aGljYWwgY3JlYXR1cmVzIEJhbHJvZyBmcm9tIExv cmQgb2YgdGhlIFJpbmdzIGFyZSBkZXNjcmliZWQgYXMgYmVpbmcgInNoYWRvdyBhbmQgZmxhbWUi LCB0aGUgcG9lc3kgb2Ygd2hpY2ggYXBwZWFycyBtdWNoIHN0cm9uZ2VyIGluIExvamJhbjogJyds YSBiYWxyb2cgY3Ugc2knbyBmYWdyaSBqb2kgbWFua3UnJyBpcyBhc3NlcnRpbmcgbm90IG9ubHkg dGhhdCBpdOKAmXMgbWFkZSBvdXQgb2Ygc2hhZG93IGFuZCBmbGFtZSwgYnV0IGFsc28gc3VnZ2Vz dGluZyB0aGF0IGl04oCZcyB0aGUgcHJvdG90eXBpY2FsIFNoYWRvdyBhbmQgRmxhbWUsIGZyb20g d2hpY2ggYWxsIG90aGVyIHNoYWRvdyBhbmQgZmxhbWUgZGVyaXZlcy4KCgoKRm9yIGdvb2QgbWVh c3VyZSwgaXQgc2hvdWxkIGJlIHN0YXRlZCB0aGF0IGV0eW1vbG9naWNhbGx5LCAic2knbyIgZGVy aXZlcyBmcm9tICJzaWRibyIsICJpZGVhIiwgYnV0IGluIGN1cnJlbnQgdXNhZ2UgYW4gaWRlYSBp cyBjb25zaWRlcmVkIGEgdGV4dCBhbmQgbm90IGEgY29uY2VwdC4KCgoKVGhlIGRpZmZlcmVuY2Ug YmV0d2VlbiB0aGUgdGhyZWUgYWJzdHJhY3RvcnMgJydrYScnLCAnJ25pJycgYW5kICcnc2knbycn IGNhbiBiZSBpbGx1c3RyYXRlZCB3aXRoIGEgZmV3IG1vcmUgZXhhbXBsZXMgZm9yIGNvbXBhcmlz b246CgonJ2xvIGthIGNyaW5vIGN1IHBsdWthIG1pJycgLSAiQmVpbmcgZ3JlZW4gcGxlYXNlcyBt ZSIKCicnbG8gbmkgY3Jpbm8gY3UgcGx1a2EgbWknJyAgLSAiSG93IG11Y2gge3pvJ2V9IGlzIGdy ZWVuIHBsZWFzZXMgbWUiIChubyAnJ2NlJ3UnJyEpCgonJ2xvIHNpJ28gY3Jpbm8gY3UgcGx1a2Eg bWknJyAtICJHcmVlbm5lc3MgcGxlYXNlcyBtZSIKCgoKJydtaSBuaXRjdSBsbyBrYSBzaXBuYSBr dSBsbyBrYSBrYW5ybycnIC0gIkkgbmVlZCBzbGVlcCBpbiBvcmRlciB0byBiZSBoZWFsdGh5IgoK JydtaSBuaXRjdSBsbyBzaSdvIHNpcG5hIGxvIGthIHRhdmxhIGZpIGxvIHNpcG5hJycgLSAiSSBu ZWVkIHRoZSBjb25jZXB0IG9mIHNsZWVwIGluIG9yZGVyIHRvIHNwZWFrIGFib3V0IHNsZWVwaW5n IHRoaW5ncyIKCkFuZCBJIHdhcyB0ZW1wdGVkIHRvIHdyaXRlICcnbWkgbml0Y3UgbG8gbmkgc2lw bmEga3UgbG8ga2EgdnJlamkgcmknJyAtICJJIG5lZWQgdGhlIGFtb3VudCBvZiBob3cgbXVjaCB7 em8nZX0gc2xlZXBzIiwgYnV0IHRoYXQgZG9lc24ndCBzZWVtIHRvIG1ha2UgYSBsb3Qgb2Ygc2Vu c2UuCgoKCgoKISFMb2piYW4gTGVzc29ucyAtIExlc3NvbiB0aGlydHktb25lICh0aGUgbm90LXNv LWN1dGUgYXNzb3J0ZWQgd29yZHMpCgpZZXMsIHRoaXMgbGVzc29uIGlzIHlldCBhbm90aGVyIHdo aWNoIGZvY3VzZXMgb24gYXNzb3J0ZWQgd29yZHMuIFRoaXMgdGltZSwgaG93ZXZlciwgdGhlIGNv bnRlbnQgb2YgdGhlIGxlc3NvbiBpcyBub3QgY2hvc2VuIGJ5IGNvbW1vbiB1c2FnZTogVW5saWtl IHdvcmRzIGxpa2UgJydqYWknJyBhbmQgJydzaScnLCBtb3N0IG9mIHRoZSBmb2xsb3dpbmcgd29y ZHMgc2VlIGxpdHRsZSB1c2FnZSBpbiBvcmRpbmFyeSBjb252ZXJzYXRpb24uIFNvbWUgb2YgdGhl bSBhcmUsIGhvd2V2ZXIsIGltcG9ydGFudCB0byB1bmRlcnN0YW5kaW5nIHRoZSBmb2xsb3dpbmcg bGVzc29ucywgYW5kIHNvIHRoZXNlIHdvcmRzIG11c3QgYmUgYXdrd2FyZGx5IHBsYWNlZCBiZWZv cmUgdGhlaXIgdXNhZ2UgaW4gdGhlc2UgbGVzc29ucy4KCgoKQmVmb3JlIHdlIHZlbnR1cmUgdG8g b2JzY3VyZSB3b3JkcywgdGhlcmUncyBvbmUgd29yZCB3aGljaCBJIHRoaW5rIGRlc2VydmVzIGEg bW9yZSB0aG9yb3VnaCBleHBsYW5hdGlvbiB0aGFuIGl0IGhhcyBiZWVuIGdpdmVuIHNvIGZhcjog JydrYXUnJy4KCicna2F1Jycgd2FzIGV4cGxhaW5lZCBpbiBsZXNzb24gdHdlbHZlLCBidXQgdGhl IHJlYWwgaW1wbGljYXRpb25zIG9mIGl0IHdhcyBub3QuIElmIHlvdSBoYXZlIGZvcmdvdHRlbiB3 aGF0IGl0IG1lYW5zLCBJIGFkdmljZSB5b3UgdG8gZ28gYmFjayBhbmQgc2VlLiBVbmZvcnR1bmF0 ZWx5LCBJIGNhbid0IHByZXNlbnQgYSB0aGVvcnkgb24gd2hhdCAnJ2thdScnIGRvZXMgd2hlbiBp dCdzIHByZXNlbnQgaW4gdGhlIG1haW4gYnJpZGksIG9ubHkgb24gd2hhdCBpdCBkb2VzIGluc2lk ZSBhbiBhYnN0cmFjdGlvbi4KCkEgYnJpZGkgd2l0aCBhYnN0cmFjdGlvbiBjb250YWluaW5nIGEg JydrYXUnJyBtYWtlcyB0d28gY2xhaW1zOiBUaGUgYnJpZGkgaXRzZWxmIG1ha2VzIG9uZSBjbGFp bSBhcyB1c3VhbCwgYW5kIGltcGxpY2l0IGluIHRoZSBhYnN0cmFjdGlvbiBpcyBmdXJ0aGVybW9y ZSB0aGUgY2xhaW0gdGhhdCB0aGUgd29yZCAnJ2thdScnIGlzIGF0dGFjaGVkIHRvIGhhcyBhIHJl YWwsIG5vbnplcm8gbWVhbmluZy4KClRoaXMgc2hvdWxkIGJlIGRlbW9uc3RyYXRlZDogVGhlIGJy aWRpICcnbWkgcHUgdmlza2EgbG8gbnUgbWEga2F1IGNsaXZhIGxlIHNhbGNpJycgKEkgc2F3IHdo byBsZWZ0IHRoZSBwYXJ0eSkgbWFrZXMgdHdvIGNsYWltcy4gRmlyc3QsIGl0IG1ha2VzIGFuIGlt cGxpY2l0IGNsYWltIHRoYXQgdGhlICcnbWEnJyByZWZlcnMgdG8gc29tZXRoaW5nIHJlYWwuIFRo YXQgaXMsIHRoZSBicmlkaSBhY3R1YWxseSBjbGFpbXMgdGhhdCAnJ2RhIGNsaXZhIGxlIHNhbGNp JycgKFggbGVmdCB0aGUgcGFydHkpLiBTZWNvbmRseSwgdGhlIG1haW4gYnJpZGkgbWFrZXMgdGhl IGNsYWltIHRoYXQgd2hhdCB0aGUgJydtYScnIHJlZmVycyB0byBpcyB3aGF0IHdhcyBiZWluZyBz ZWVuLCBvciBpbiBsb2piYW4gJydtaSBwdSB2aXNrYSBsbyBudSBkYSBjbGl2YSBsZSBzYWxjaScn LiAoSSBzYXcgdGhhdCBYIGxlZnQgdGhlIHBhcnR5KQoKVGhpcyBwcmluY2lwbGUgaXMgbm90IHJl c3RyaWN0ZWQgdG8gdGhlIGFic3RyYWN0b3IgJydudScnLCBvciB0byB0aGUgcXVlc3Rpb24gd29y ZCAnJ21hJycuIFRoZSBzYW1lIHByaW5jaXBsZSBjYW4gYmUgZXh0ZW5kZWQgdG8gYW55IG90aGVy IGFic3RyYWN0b3IgYW5kIGFueSBvdGhlciBxdWVzdGlvbiB3b3JkLCBhcyBpbiB0aGUgZm9sbG93 aW5nIGJyaWRpOgoKJydsYSAuYmFiLiBuYSdlIGJpcnRpIGxvIGR1J3UgeHUga2F1IGxhIC5taWFz LiBwYW1wZSdvJycgKEJvYiBpc24ndCBzdXJlIHdoZXRoZXIgb3Igbm90IE1pYSBoYXMgYSBib3lm cmllbmQpIHN0YXRlcyBmaXJzdGx5IHRoYXQgJyd4dScnIGFwcGxpZXMsIHdoaWNoIG1lYW5zIHRo YXQgYSB0cnV0aCB2YWx1ZSBjb3JyZWN0bHkgY2FuIGJlIGFzc2lnbmVkIHRvIHRoZSBicmlkaSwg YW5kIHNlY29uZGx5IHRoYXQgd2hhdCBCb2IgaXNuJ3Qgc3VyZSBhYm91dCBpcyB0aGUgY29ycmVj dCB0cnV0aCB2YWx1ZSBmb3IgdGhlIGJyaWRpLgoKJydrYXUnJyBjYW4gYWxzbyBiZSBhcHBsaWVk IHRvIGEgbm9uLXF1ZXN0aW9uIHdvcmQuIFRoaXMgZG9lc24ndCByZWFsbHkgY2hhbmdlIHRoZSBt ZWFuaW5nIG9mIHRoZSB3b3JkLiBUaGUgc2FtZSBwcm9jZWR1cmUgc3RpbGwgYXBwbGllczoKCicn ZG8gY2EnbyBkanVubyBsbyBkdSd1IGxhIGtyZXN0Y2VuIGthdSBjdSBjaW5iYSBsYSBhbicnID0g IllvdSBhbHJlYWR5IGtub3cgdGhhdCBpdCB3YXMgS3Jpc3RpYW4sIHdobyBraXNzZWQgQW5uZS4i IHN0YXRlcyBmaXJzdGx5IHRoYXQgJydsYSBrcmVzdGNlbiBjdSBjaW5iYSBsYSBhbicnIGFuZCB0 aGVuIHRoYXQgJydkbyBjYSdvIGRqdW5vIGxvZHUndSBsYSBrcmVzdGNlbiBjdSBjaW5iYSBsYSBh bicnLgoKCgpNb3Zpbmcgb24gdG8gdGhlIG1vcmUgb2JzY3VyZSB3b3Jkcywgd2UgY2FuIGJlZ2lu IHdpdGggJyd4aScnOyBpdCdzIGVhc3kuCgpfXycneGknJ19fOiBTdWJzY3JpcHQuIENvbnZlcnRz IGFueSBmb2xsb3dpbmcgbnVtYmVyIHN0cmluZyB0byBhIHN1YnNjcmlwdCwgd2hpY2ggaGFzIHRo ZSBncmFtbWFyIG9mIGFuIGF0dGl0dWRpbmFsIChpZS4gcGxhY2FibGUgcHJhY3RpY2FsbHkgYW55 d2hlcmUpLgoKVGhlcmUgYXJlIGZldyBvZmZpY2lhbGx5IGVuY291cmFnZWQgdXNlcyBvZiAnJ3hp JycsIGJ1dCBwcmVjaXNlbHkgYmVjYXVzZSB0aGUgY29uc3RydWN0ICcneGknJytudW1iZXIgaGFz IHRoZSBmcmVlIGdyYW1tYXIgb2YgYW4gYXR0aXR1ZGluYWwsIHRoZSBwb3NzaWJsZSB1c2VzIG9m ICcneGknJyBhcmUgYWxtb3N0IGVuZGxlc3MuIEluIGdlbmVyYWwsIGl0J3MgdXNlZCB0byBlbnVt ZXJhdGUgYW55IHdvcmQsIHZhcmlhYmxlIG9yIGdyYW1tYXRpY2FsIGNvbnN0cnVjdCwgYXMgb3Bw b3NlZCB0byB3aGF0IGl0IHJlZmVycyB0by4gTGV0J3Mgc2VlIHNvbWUgZXhhbXBsZXMuCgpsYSB0 c2FuaSBjdSBjdXNrdSB6byBjb2kgIC5pIGJhIGJvIGxhIC50cmlsaXluLiBjdXNrdSBsdSAudWkg Y29pIGxhIHRzYW5pIGNvaSBsYSBrbGFrdSBsaSd1ICAuaSBiYSBibyBsYSBrbGFrdSBjdSBzcHVk YSBmaSBsdSBjb2kgdHkuIHhpIHBhIC5lIHR5LiB4aSByZSBkbyd1IHpvJ28gbGkndSAtICJUc2Fu aSBzYWlkICJoaSIsIHRoZW4gVHJpbGl5biBzYWlkICJIZXkgVHNhbmksIGhleSBLbGFrdSA6KSIs IHRoZW4gS2xha3UgYW5zd2VyZWQgIkhlbGxvIFQxIGFuZCBUMiA6UCIiCgpCZWNhdXNlIGl0J3Mg dGhlIHN0YW5kYXJkIHRoYXQgJyd0eS4nIHJlZmVycyB0byB0aGUgbGFzdCBzdW10aSB3aGljaCBi ZWdhbiB3aXRoIFQsICcndHknJyBieSBpdHNlbGYgYXMgc2FpZCBieSBLbGFrdSB3b3VsZCBoYXZl IHJlZmVycmVkIHRvIFRzYW5pLiBUd28gX19kaWZmZXJlbnRfXyAnJ3R5LicnIGNhbiBiZSBtYWRl IGJ5IHN1YnNjcmlwdGluZyB3aXRoICcneGknJy4KCklmIHRoZSByYXJlIHNpdHVhdGlvbiBhcmlz ZXMgdGhhdCB3ZSBuZWVkIG1vcmUgdmFyaWFibGVzIG9mIHRoZSB0eXBlICcnZGEnJyBvciAnJ2J1 J2EnJyB0aGF0IHRoZXJlIGFyZSBpbiB0aGUgbGFuZ3VhZ2UsIGFuIGluZmluaXRlIG51bWJlciBj YW4gYmUgbWFkZSBieSBzaW1wbHkgc3Vic2NyaXB0aW5nIGFueSBleGlzdGluZyB3aXRoIGEgbnVt YmVyLiBOb3RlIHRoYXQgYSBub24tc3Vic2NyaXB0ZWQgdmFyaWFibGUgaXMgbm90IGRlZmluZWQg YWYgYmVpbmcgZXFpdXZhbGVudCB0byBhbnkgc3Vic2NyaXB0ZWQgb25lLiBUaGF0IGlzOiAnJ3R5 JycgaXMgbm90IGFsd2F5cyBlcXVhbCB0byAnJ3R5IHhpIHBhJycgb3IgJyd0eSB4aSBubycnIG9y IGFueXRoaW5nIG9mIHRoZSBzb3J0LiBJIGV4cGVjdCB0aGlzIHRvIGJlIHJhcmVseSB1c2VkLCBi ZWNhdXNlIGFueSBzZW50ZW5jZSB3aXRoIG1vcmUgdGhhbiAzICcnZGEnJy1saWtlIHdvcmRzIG9y IG1vcmUgdGhhbiAxMCAnJ2tvJ2EnJy1saWtlIHdvcmRzIHdvdWxkIGJlIGhhcmQgdG8ga2VlcCB0 cmFjayBvZi4KCgoKU2Vjb25kLCB3ZSBoYXZlICcna2knJywgb2Ygd2hpY2ggSSBhbSBub3QgYXdh cmUgb2YgYSBzaW5nZSB1c2FnZSBpbiBteSB0aW1lIG9uIElSQzsgcHJvYmFibHkgbm90IGJlY2F1 c2UgdGhlIHdvcmQncyB1c2VsZXNzLCBidXQgYmVjYXVzZSBmZXcgTG9qYmFuaWMgdGV4dHMgYXJl IG9mIHRoZSBraW5kIHdoZXJlIHlvdSBuZWVkIGl0LgoKX18nJ2tpJydfXyAiU3RpY2t5IHRlbnNl Ii4gU2V0L3VzZSB0ZW5zZSBkZWZhdWx0OyBlc3RhYmxpc2hlcyBuZXcgb3BlbiBzY29wZSBzcGFj ZS90aW1lL21vZGFsIHJlZmVyZW5jZSBiYXNlLgoKQW55IHJvdyBvZiB0ZW5zZSB3b3JkcyBjYW4g YmUgc3VmZml4ZWQgd2l0aCAnJ2tpJycgdG8gbWFrZSB0aGUgdGVuc2UocykgYXBwbHkgdG8gYWxs IGZvbGxvd2luZyBicmlkaS4gV2hlbiwgZm9yIGluc3RhbmNlLCB0ZWxsaW5nIGEgc3RvcnksIHRo aXMgY2FuIGJlIHVzZWQgdG8gbWFrZSBleHBsaWNpdCB0aGF0IHRoZSBkZWZhdWx0IHRpbWUgLSB0 aGUgdGltZSBhcyBtZWFudCB3aXRob3V0IGFueSB0ZW5zZSB3b3JkcyAtIGlzIHRoZSB0aW1lIHRo ZSBzdG9yeSBpcyBwbGFjZWQgaW4uIFVzdWFsbHksIHRoaXMgd2lsbCBub3QgYmUgbmVjZXNzYXJ5 OyBiZWdpbm5pbmcgYSBmYWlyeXRhbGUgd2l0aCAnJ3B1IHp1IHZ1IGt1JycsIG9uZSBjYW4gYXNz dW1lIHRoYXQgdGhlIGVudGlyZSB0YWxlIGlzIGhhcHBlbmluZyBhIGxvbmcgdGltZSBhZ28gYW5k IGZhciBhd2F5LiBMZXQncyBoYXZlIGFuIGV4YW1wbGU6CgonJ3B1IHp1IHZ1IGtpIGt1IHphc3Rp IGZhIGxvIHB1a2NsaXRlIGplIGNtYWx1IG5peGxpIGdvaSBrb+KAmWEgIC5pIHJvIGRhIHBvaSAn J1snJ3B1IHp1IHZ1JyddJycgdmlza2Ega2/igJlhIGN1IG5lbGNpIGtv4oCZYScnIC0gIk9uY2Ug dXBvbiBhIHRpbWUgdGhlcmUgd2FzIGEgc3dlZXQsIGxpdHRsZSBnaXJsLiBFdmVyeW9uZSB3aG8g c2F3IGhlciBsaWtlZCBoZXIiLiBUaGUgJydraScnIGFsbG93cyB1cyB0byBlbGlkZSB0aGUgdGhy ZWUgdGVuc2VzIGluIHRoZSBzZWNvbmQgYnJpZGksIGFuZCBpbiBhbGwgdGhlIGJyaWRpIHRvIGZv bGxvdy4KClNvLCBpZiBhIGJ1bmNoIG9mIHRlbnNlcyBoYXZlIGJlZW4gbWFrZSBzdGlja3kgd2l0 aCAnJ2tpJycsIGhvdyBkbyB3ZSB1bnN0aWNrIHRoZW0/IFNpbXBsZSB1c2UgJydraScnIGJ1IGl0 c2VsZiwgYW5kIGFsbCBzdGlja3kgdGVuc2VzIGFyZSBtYWRlIHVuc3RpY2t5LgoKTGFzdGx5LCBz ZXZlcmFsIHNldHMgb2YgdGVuc2VzIGNhbiBiZSBtYWRlIHN0aWNreSBieSBzdWJzY3JpcHRpbmcg JydraScnLiBJZiB0aGVyZSBhcmUgc2V2ZXJhbCBvZiBzdWNoIHNldHMgaW4gdXNhZ2UgYXQgYW55 IGdpdmVuIHRpbWUsIG9uZSBjYW4gdXNlIHRoZSBzdWJzY3JpcHRlZCAnJ2tpJydzIHRvIG1ha2Ug dGhlIGNvcnJlc3BvbmRpbmcgc2V0IG9mIHRlbnNlcyBhcHBseS4gVW5zdWJzY3JpcHRlZCAnJ2tp JycgYWxvbmUgc3RpbGwgbWFrZXMgYWxsIHRlbnNlIHN0aWNraW5lc3MgZGlzYXBwZWFyLCBzbyB5 b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdCB0byB1c2UgJydraScnIHVuc3Vic2NyaXB0ZWQgaWYg eW91IHBsYW4gb24gdXNpbmcgc2V2ZXJhbCBzZXRzIG9mIHRlbnNlcy4KCgoKQ2hhbmdpbmcgc3Vi amVjdC4gVGhlcmUncyBhIHNldCBvZiBzdW10Y2l0YSB3aGljaCBhcmUgb2Z0ZW4gdXNlZCwgYnV0 IHdoaWNoIEkgZGFyZSBub3QgdHJ5IHRvIGRlZmluZSBpZiBub3QgdW5kZXIgdGhlIGRpc2NsYWlt ZXIgb2YgcGFydCB0aHJlZS4gTGV0J3Mgc2VlIG9mZmljaWFsIGRlZmluaXRpb25zIGZvciB0d28g b2YgdGhlbSBmaXJzdC4KCl9fJydjYSdhJydfXzogbW9kYWwgYXNwZWN0OiBhY3R1YWxpdHkvb25n b2luZyBldmVudC4gQnJpZGkgaGFzL2lzL3dpbGwgaGFwcGVuIGR1cmluZyB1bmRlciB0aGUgY2ly Y3Vtc3RhbmNlcyBvZiB7c3VtdGl9CgpfXycna2EnZScnX186IG1vZGFsIGFzcGVjdDogaW5uYXRl IGNhcGFiaWxpdHk7IHBvc3NpYmx5IHVucmVhbGl6ZWQuIEJyaWRpIGlzIHBvc3NpYmxlIHVuZGVy IHRoZSBjaXJjdW1zdGFuY2VzIG9mIHtzdW10aX0KCkxldCdzIGZpcnN0IGNvbnRyYXN0ICcnY2En YScnIHdpdGggJydrYSdlJycuICcna2EnZScnIG1lYW5zIHRoYXQgdGhlIGJyaWRpIGlzICJwb3Nz aWJsZSBpZiB0aGUgZXZlbnQgb2YgU1VNVEkgaGFzL2lzL3dpbGwgb2NjdXIiLiAnJ2NhJ2EnJyBi eSBjb250cmFzdCwgbWVhbnMgdGhhdCB0aGUgYnJpZGkgImhhcywgaXMsIG9yIHdpbGwgaGFwcGVu IGlmIHRoZSBldmVudCBvZiBTVU1USSBoYXMvaXMvd2lsbCBvY2N1ciIuIAoKTGlrZSBhbGwgc3Vt dGNpdGEsIHRoZWlyIGNvcnJlc3BvbmRpbmcgc3VtdGkgY2FuIGJlIGVsaWRlZCBpZiB0aGUgc3Vt dGNpdGEgaXMgcGxhY2VkIGJlZm9yZSB0aGUgc2VsYnJpOgoKJydsZSB2aSBzb3ZkYSBrYSdlIGZ1 bHRhIC5pIGphJ28gYm8gcmkgZnVzcmEnJyAtICJUaGlzIGVnZyBmbG9hdHMuIFRoZXJlZm9yZSwg aXQncyByb3R0ZW4iLgoKQnkgdXNpbmcgJydrYSdlJycsIHRoaXMgc2VudGVuY2UgZG9lcyBub3Qg c3RhdGUgdGhhdCB0aGUgZWdnIGhhcyBmbG9hdGVkLCBvciBldmVyIHdpbGwgZmxvYXQsIGJ1dCBy YXRoZXIgdGhhdCBpdCBjb3VsZCBmbG9hdC4KCgoKX18nJ3B1J2knJ19fOiBtb2RhbCBhc3BlY3Q6 IGNhbiBhbmQgaGFzOyBkZW1vbnN0cmF0ZWQgcG90ZW50aWFsLiBCcmlkaSBjb3VsZCBvciBjb3Vs ZCBub3QgaGFwcGVuLCBidXQgaW4gZmFjdCBpdCBpcy9kaWQvd2lsbCBoYXBwZW4gdW5kZXIgdGhl IGNpcmN1bXN0YW5jZSBvZiB7c3VtdGl9CgpfXycnbnUnbycnX186IG1vZGFsIGFzcGVjdDogY2Fu IGJ1dCBoYXMgbm90OyB1bnJlYWxpemVkIHBvdGVudGlhbC4gQnJpZGkgaXMgcG9zc2libGUsIGJ1 dCBpcy93aWxsL2hhdmUgbm90IGhhcHBlbmVkIHVuZGVyIHtzdW10aX0KCgoKVW5kZXJzdGFuZGlu ZyAnJ2thJ2UnJyBhbmQgJydjYSdhJycsICcnbnUnbycnIHNpbXBseSBtZWFucyAnJ2thJ2UgamUg bmEga3UgY2EnYScnLCBhbmQgJydwdSdpJycgbWVhbnMgJydjYSdhIGplIGthJ2UgbmEga3UnJy4g CgpIaXN0b3JpY2FsbHksIHRoZXNlIGZvdXIgd29yZHMgd2FzIHRlbnNlIHN1bXRjaXRhIC0gdGhl cmVmb3JlIHRoZSAibW9kYWwgYXNwZWN0IiBpbiB0aGVpciBkZWZpbml0aW9ucy4gQWxsIHRlbnNl IHN1bXRjaXRhIHdhcyB0aGVuIG5vdCBjb25zaWRlcmVkIHN1bXRjaXRhIGF0IGFsbCwgYnV0IHJh dGhlciAic2VsYnJpIHRjaXRhIi4gQSBtb2Rlcm4gdW5kZXJzdGFuZGluZyBvZiBMb2piYW4gaXMg Z2FpbmluZyBwb3B1bGFyaXR5LCB3aGVyZWluIHRoZSB0ZW5zZSBzdW10Y2l0YSBhcmUgY29uc2lk ZXJlZCBzdW10Y2l0YSwgYWxtb3N0IGV4YWN0bHkgbGlrZSB0aGUgQkFJLCBhbmQgaW4gd2hlcmUg c2VsYnJpIHRjaXRhIGFyZSBub3QgdXNlZC4gCgpCZWNhdXNlIG9mIHRoZXNlIGZvdXIgd29yZHMn IGhpc3RvcnkgYXMgc2VsYnJpIHRjaXRhLCB0aGV5IGNhbiBiZSBmcmVlbHkgZWxpZGVkIC0gaW5k ZWVkLCBzaW5jZSBvbmUgb2YgdGhlIGZvdXIgd29yZHMgYWx3YXlzIGFwcGxpZXMsIG9uZSBpcyBh bHdheXMgYXNzdW1lZCB0byBiZSBlbGlkZWQuIFRoaXMgaXMgbW9zdCBvZnRlbiAnJ2NhJ2EnJy4g SW5kZWVkLCBpdCdzIHNvIG9mdGVuICcnY2EnYScnIHRoYXQgb25lIGNvdWxkIHdvbmRlciB3aHkg JydjYSdhJycgaXMgbm90IHRoZSBkZWZhdWx0LgoKT25lIHJlYXNvbiBpcyB0aGF0IHNvbWUgc2Vs YnJpIGhhcyB0d28gdXNlZnVsIGRlZmluaXRpb25zLCBvbmUgd2hpY2ggaW1wbGllcyAnJ2thJ2Ug U0VMQlJJJycgYW5kIG9uZSB3aGljaCBpbXBsaWVzICcnY2EnYSBTRUxCUkknJy4gRm9yIGFuIGV4 YW1wbGUsIHNlZSAnJ2Zhc251JycsIHdoaWNoIGNhbiBtZWFuICJ4MSBpcyBoYXBwZW5pbmciIG9y ICJ4MSBpcyBhbiBldmVudCIsIHdoZXJlIHRoZSBmaXJzdCBpbXBsaWVzICcnY2EnYSBmYXNudScn IGFuZCB0aGUgc2Vjb25kICcna2EnZSBmYXNudScnCgpBbm90aGVyIHVzZSBvZiAiaW1wbGllZCAn J2thJ2UnJyIgaXMgYXMgYSB3YXkgdG8gZXNjYXBlIGFuIGFubm95aW5nIHBoaWxvc29waGljYWwg cHJvYmxlbSBpbiB0aGUgbGFuZ3VhZ2UuIEEgc2VsYnJpIG9ubHkgYXBwbGllcyBpZiBhbGwgaXRz IHBsYWNlcyBhcHBseSB0b28uIEZvciBzb21lIHNlbGJyaSwgbGlrZSAnJ2thYnJpJycsIHRoYXQn cyBhIHByb2JsZW0uCgpfXycna2FicmknJ19fIHgxIGlzIGEgY3VwIGNvbnRhaW5pbmcgY29udGVu dHMgeDIgYW5kIG9mIG1hdGVyaWFsIHgzCgpUaGUgZGVmaW5pdGlvbiBzdWdnZXN0cyB0aGF0IGlm IHRoZSBjb250ZW50IG9mIHRoZSBjdXAgaXMgcmVtb3ZlZCwgdGhlIHgyIG5vIGxvbmdlciBhcHBs aWVzIGFuZCBpdCBzdG9wcyBiZWluZyAnJ2xvIGthYnJpJycuIEltcGxpZWQgJydrYSdlJycsIG9y IG1vcmUgZml0dGluZ2x5LCAnJ251J28nJywgbGV0IHVzIGVzY2FwZSB0aGF0IHByb2JsZW0uCgoK CgoKISEhRW5kIG9mIGxlc3NvbnMKClNvcnJ5LCBidXQgYXMgb2Ygbm93LCB0aGVyZSBhcmUgbm8g bW9yZSBsZXNzb25zIGluIHRoaXMgc2VyaWVzLiBQZXJoYXBzIG1vcmUgd2lsbCBiZSBhZGRlZCBs YXRlci4gTWVhbndoaWxlLCBmZWVsIGZyZWUgdG8gdmlzaXQgKCh3YXZlbGVzc29uc2NvbnRpbnVl ZHx0aGUgZmlyc3QgcGFydCBvZiBXYXZlbGVzc29uc2NvbnRpbnVlZCkpIG9yICgod2F2ZWxlc3Nv bnNjb250aW51ZWRwMnxUaGUgc2Vjb25kIHBhcnQgb2YgV2F2ZWxlc3NvbnNjb250aW51ZWQpKS4K CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpXaWtpY2hh bmdlcyBtYWlsaW5nIGxpc3QKV2lraWNoYW5nZXNAbG9qYmFuLm9yZwpodHRwOi8vbWFpbC5sb2pi YW4ub3JnL21haWxtYW4vbGlzdGluZm8vd2lraWNoYW5nZXMK