LyoKICogQ29weXJpZ2h0IDIwMDUgQWxleGFuZGVyIE4uIFP4cm5lcyA8YWxleEB0aGVoYW5kb2ZhZ29ueS5jb20+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KClNUUklOR1RBQkxFIExBTkdVQUdFIExBTkdfTk9SV0VHSUFOLCBTVUJMQU5HX05PUldFR0lBTl9CT0tNQUwKQkVHSU4KCi8qIE1NU1lTIGVycm9ycyAqLwpNTVNZU0VSUl9OT0VSUk9SLCAJCSJEZW4gb3BwZ2l0dGUga29tbWFuZG9lbiBibGUgdXRm+HJ0LiIKTU1TWVNFUlJfRVJST1IsIAkJIlVkZWZpbmVydCBla3N0ZXJuIGZlaWwuIgpNTVNZU0VSUl9CQURERVZJQ0VJRCwgCQkiRW4gZW5oZXRzLUlEIHNvbSBlciB1dGVuZm9yIHJla2tldmlkZGUgcOUgZGl0dCBzeXN0ZW0gZXIgYnJ1a3QuIgpNTVNZU0VSUl9OT1RFTkFCTEVELCAJCSJEcml2ZXJlbiBibGUgaWtrZSBha3RpdmVydC4iCk1NU1lTRVJSX0FMTE9DQVRFRCwgCQkiRGVuIG9wcGdpdHRlIGVuaGV0ZW4gZXIgYWxsZXJlZGUgaSBicnVrdXNlLiBWZW50IHRpbCBkZW4gZXIgbGVkaWcgb2cgcHL4diBpZ2plbi4iCk1NU1lTRVJSX0lOVkFMSEFORExFLCAJCSJEZXQgb3BwZ2l0dGUgZW5oZXRzaOVuZHRha2V0IGVyIHVneWxkaWcuIgpNTVNZU0VSUl9OT0RSSVZFUiwgCQkiRGV0IGVyIGluZ2VuIGRyaXZlciBpbnN0YWxsZXJ0IHDlIHN5c3RlbWV0LlxuIgpNTVNZU0VSUl9OT01FTSwgCQkiSWtrZSBub2sgbWlubmUgZm9yIGRlbm5lIG9wZXJhc2pvbmVuLiBBdnNsdXR0IGV0dCBlbGxlciBmbGVyZSBwcm9ncmFtbWVyIGZvciDlIGZyaWdq+HJlIG1pbm5lIG9nIHBy+HYgaWdqZW4uIgpNTVNZU0VSUl9OT1RTVVBQT1JURUQsIAkJIkRlbm5lIGZ1bmtzam9uZW4gc3T4dHRlcyBpa2tlLiBCcnVrIGZ1bmtzam9uZW4gJ0NhcGFiaWxpdGllcycgZm9yIOUgZmlubmUgdXQgaHZpbGtlIGZ1bmtzam9uZXIgb2cgbWVsZGluZ2VyIGRyaXZlcmVuIHN0+HR0ZXIuIgpNTVNZU0VSUl9CQURFUlJOVU0sIAkJIkV0IGZlaWxudW1tZXIgc29tIGlra2UgZXIgZGVmaW5lcnQgaSBzeXN0ZW1ldCBibGUgb3BwZ2l0dC4iCk1NU1lTRVJSX0lOVkFMRkxBRywgCQkiRXQgdWd5bGRpZyBmbGFnZyBibGUgZ2l0dCB0aWwgZW4gc3lzdGVtZnVua3Nqb24uIgpNTVNZU0VSUl9JTlZBTFBBUkFNLCAJCSJFbiB1Z3lsZGlnIHBhcmFtZXRlciBibGUgZ2l0dCB0aWwgZW4gc3lzdGVtZnVua3Nqb24uIgoKLyogV0FWRSBlcnJvcnMgKi8KV0FWRVJSX0JBREZPUk1BVCwgCQkiRGV0IG9wcGdpdHRlIGZvcm1hdGV0IHN0+HR0ZXMgaWtrZSBlbGxlciBrYW4gaWtrZSBvdmVyc2V0dGVzLiBCcnVrIGZ1bmtzam9uZW4gJ0NhcGFiaWxpdGllcycgZm9yIOUgc2UgZGUgc3T4dHRlZGUgZm9ybWF0ZW4uIgpXQVZFUlJfU1RJTExQTEFZSU5HLCAJCSJLYW4gaWtrZSB1dGb4cmUgZGVubmUgb3BlcmFzam9uZW4gbWVucyBtZWRpZS1kYXRhIHNwaWxsZXMuIFRpbGJha2VzdGlsbCBlbmhldGVuLCBlbGxlciB2ZW50IHRpbCBkYXRhZW5lIGVyIHNwaWx0IGF2LiIKV0FWRVJSX1VOUFJFUEFSRUQsIAkJIkRpZ2l0YWxseWRob2RldCB2YXIgaWtrZSBmb3JiZXJlZHQuIEJydWsgZnVua3Nqb25lbiAnUHJlcGFyZScgZm9yIOUgZm9yYmVyZWRlIGhvZGV0IG9nIHBy+HYgZGVyZXR0ZXIgaWdqZW4uIgpXQVZFUlJfU1lOQywgCQkJIkthbiBpa2tlIOVwbmUgZW5oZXRlbiB1dGVuIOUgYnJ1a2UgZmxhZ2dldCAnV0FWRV9BTExPV1NZTkMuIEJydWsgZmxhZ2dldCBvZyBwcvh2IGlnamVuLiIKCi8qIE1JREkgZXJyb3JzICovCk1JRElFUlJfVU5QUkVQQVJFRCwgCQkiTUlESS1ob2RldCB2YXIgaWtrZSBmb3JiZXJlZHQuIEJydWsgZnVua3Nqb25lbiAnUHJlcGFyZScgZm9yIOUgZm9yYmVyZWRlIGhvZGV0IG9nIHBy+HYgZGVyZXR0ZXIgaWdqZW4uIgpNSURJRVJSX1NUSUxMUExBWUlORywgCQkiS2FuIGlra2UgdXRm+HJlIGRlbm5lIG9wZXJhc2pvbmVuIG7lciBtZWRpZS1kYXRhIGF2c3BpbGxlcy4gVGlsYmFrZXN0aWxsIGVuaGV0ZW4sIGVsZWxyIHZlbnQgdGlsIGRhdGFlbmUgZXIgZmVyZGlnIGF2c3BpbHQuIgpNSURJRVJSX05PTUFQLCAJCQkiRmFudCBpa2tlIGV0IE1JREkta2FydC4gRGV0IGthbiB25nJlIGV0IHByb2JsZW0gbWVkIGRyaXZlcmVuLCBlbGxlciBmaWxlbiAnTUlESU1BUC5DRkcnIGthbiB25nJlIGtvcnJ1cHQgZWxsZXIgbWFuZ2xlLiIKTUlESUVSUl9OT1RSRUFEWSwgCQkiUG9ydGVuIHNlbmRlciBkYXRhIHRpbCBlbmhldGVuLiBWZW50IHRpbCBkYXRlbmUgZXIgZmVyZGlnIHNlbmR0IG9nIHBy+HYgaWdlbi4iCk1JRElFUlJfTk9ERVZJQ0UsIAkJIk9wcHNldHRldCBmb3IgTUlESS1rYXJ0bGVnZ2VyZW4gcmVmZXJlcmVyIHRpbCBlbiBNSURJLWVuaGV0IHNvbSBpa2tlIGVyIGluc3RhbGxlcnQgcOUgc3lzdGVtZXQuIEJydWsgTUlESS1rYXJ0bGVnZ2VyZW4gdGlsIOUgcmVkaWdlcmUgb3Bwc2V0dGV0LiIKTUlESUVSUl9JTlZBTElEU0VUVVAsIAkJIkRldCBnamVsZGVuZGUgTUlESS1vcHBzZXR0ZXQgZXIgc2thZGV0LiBLb3BpZXIgZGVuIG9wcHJpbm5lbGlnZSAnTUlESU1BUC5DRkcnLWZpbGVuIHRpbCBXaW5kb3dzJyBzeXN0ZW0ta2F0YWxvZyBvZyBwcvh2IGlnamVuLiIKCi8qIE1DSSBlcnJvcnMgKi8KTUNJRVJSX0lOVkFMSURfREVWSUNFX0lELCAJIlVneWxkaWcgTUNJIGVuaGV0cy1JRC4gQnJ1ayBJRCdlbiBzb20gcmV0dXJuZXJlcyBu5XIgTUNJLWVuaGV0ZW4g5XBuZXMuIgpNQ0lFUlJfVU5SRUNPR05JWkVEX0tFWVdPUkQsIAkiRHJpdmVyZW4ga3VubmUgaWtrZSBnamVua2plbm5lIGRlbiBvcHBnaXR0ZSBrb21tYW5kb3BhcmFtZXRlcmVuLiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9DT01NQU5ELAkiRHJpdmVyZW4ga3VubmUgaWtrZSBnamVua2plbm5lIGRlbiBvcHBnaXR0ZSBrb21tYW5kb2VuLiIKTUNJRVJSX0hBUkRXQVJFLCAJCSJEZXQgZXIgZXQgcHJvYmxlbSBtZWQgbWVkaWVlbmhldGVuLiBT+HJnIGZvciBhdCBkZW4gdmlya2VyIG9yZGVudGxpZyBlbGxlciBrb250YWt0IGxldmVyYW5k+HJlbi4iCk1DSUVSUl9JTlZBTElEX0RFVklDRV9OQU1FLCAJIkRlbiBvcHBnaXR0ZSBlbmhldGVuIGVyIGlra2Ug5XBlbiwgZWxsZXIgaWtrZSBnamVua2plbnQgYXYgTUNJLiIKTUNJRVJSX09VVF9PRl9NRU1PUlksIAkJIklra2Ugbm9rIG1pbm5lIGZvciBkZW5uZSBvcGVyYXNqb25lbi4gXG5BdnNsdXR0IGV0dCBlbGxlciBmbGVyZSBwcm9ncmFtbWVyIGZvciDlIGZyaWdq+HJlIG1pbm5lIG9nIHBy+HYgaWdqZW4uIgpNQ0lFUlJfREVWSUNFX09QRU4sIAkJIkVuaGV0c25hdm5ldCBicnVrZXMgYWxsZXJlZGUgc29tIGV0IGFsaWVzIGF2IGRldHRlIHByb2dyYW1tZXQuIEJydWsgZXQgdW5pa3QgYWxpYXMuIgpNQ0lFUlJfQ0FOTk9UX0xPQURfRFJJVkVSLCAJIkV0IHVvcHBkYWdlbGlnIHByb2JsZW0gb3Bwc3RvZCB1bmRlciBsYXN0aW5nZW4gYXYgZGVuIG9wcGdpdHRlIGRyaXZlcmVuLiIKTUNJRVJSX01JU1NJTkdfQ09NTUFORF9TVFJJTkcsIAkiSWtrZSBrb21tYW5kbyBibGUgb3BwZ2l0dC4iCk1DSUVSUl9QQVJBTV9PVkVSRkxPVywgCQkiU2tyZXZuZSBzdHJlbmdlbiB2YXIgZm9yIHN0b3IgdGlsIOUgcGFzc2UgaSByZXR1cmh1cnRpZ21pbm5ldC4g2Gsgc3T4cnJlbHNlbiBw5SBodXJ0aWdtaW5uZXQuIgpNQ0lFUlJfTUlTU0lOR19TVFJJTkdfQVJHVU1FTlQsICJEZW4gb3BwZ2l0dGUga29tbWFuZG9lbiBrcmV2ZXIgZW4gdGVnbnN0cmVuZy1wYXJhbWV0ZXIuIE9wcGdpIGVuLiIKTUNJRVJSX0JBRF9JTlRFR0VSLCAJCSJEZXQgb3BwZ2l0dGUgaGVsdGFsbGV0IGVyIHVneWxkaWcgZm9yIGRlbm5lIGtvbW1hbmRvZW4uIgpNQ0lFUlJfUEFSU0VSX0lOVEVSTkFMLCAJIkVuaGV0c2RyaXZlcmVuIHJldHVybmVydGUgZW4gdWd5bGRpZyByZXR1cnR5cGUuIEtvbnRha3QgcHJvZHVzZW50ZW4gZm9yIOUgZuUgZW4gbnkgZHJpdmVyLiIKTUNJRVJSX0RSSVZFUl9JTlRFUk5BTCwgCSJEZXQgZXIgZXQgcHJvYmxlbSBtZWQgZW5oZXRzZHJpdmVyZW4uIEtvbnRha3QgcHJvZHVzZW50ZW4gZm9yIOUgZuUgZW4gbnkgZHJpdmVyLiIKTUNJRVJSX01JU1NJTkdfUEFSQU1FVEVSLCAJIkRlbiBvcHBnaXR0ZSBrb21tYW5kb2VuIGtyZXZlciBlbiBwYXJhbWV0ZXIuIE9wcGdpIGVuLiIKTUNJRVJSX1VOU1VQUE9SVEVEX0ZVTkNUSU9OLCAJIk1DSS1lbmhldGVuIHNvbSBicnVrZXMgc3T4dHRlciBpa2tlIGRlbiBvcHBnaXR0ZSBrb21tYW5kb2VuLiIKTUNJRVJSX0ZJTEVfTk9UX0ZPVU5ELCAJCSJLdW5uZSBpa2tlIGZpbm5lIGRlbiBvcHBnaXR0ZSBmaWxlbi4gS29udHJvbGxlciBhdCBzdGllbiBvZyBmaWxuYXZuZXQgZXIgcmlrdGlnLiIKTUNJRVJSX0RFVklDRV9OT1RfUkVBRFksIAkiRW5oZXRzZHJpdmVyZW4gZXIgaWtrZSBrbGFyLiIKTUNJRVJSX0lOVEVSTkFMLCAJCSJFdCBwcm9ibGVtIG9wcHN0b2QgdW5kZXIgaW5pdGFsaXNlcmluZ2VuIGF2IE1DaS4gUHL4diDlIHN0YXJ0ZSBXaW5kb3dzIHDlIG55dHQuIgpNQ0lFUlJfRFJJVkVSLCAJCQkiRGV0IGVyIGV0IHByb2JsZW0gbWVkIGVuaGV0c2RyaXZlcmVuLiBEcml2ZXJlbiBoYXIgYXZzbHV0dGV0LCBm5XIgaWtrZSB0aWxnYW5nIHRpbCBmZWlsLiIKTUNJRVJSX0NBTk5PVF9VU0VfQUxMLCAJCSJLYW4gaWtrZSBicnVrZSAnYWxsJyBzb20gZW5oZXRzbmF2biBtZWQgZGVuIG9wcGdpdHRlIGtvbW1hbmRvZW4uIgpNQ0lFUlJfTVVMVElQTEUsIAkJIkZlaWwgb3Bwc3RvZCBpIG1lciBlbm4g6W4gZW5oZXQuIE9wcGdpIGh2ZXIga29tbWFuZG8gb2cgZW5oZXQgc2VwZXJhdCBmb3Ig5SBmaW5uZSB1dCBodmlsa2VuIGVuaGV0IHNvbSBmb3LlcnNha2V0IGZlaWxlbi4iCk1DSUVSUl9FWFRFTlNJT05fTk9UX0ZPVU5ELCAJIkthbiBpa2tlIGJlc3RlbW1lIGVuaGV0c3R5cGVuIGZyYSBkZW4gb3BwZ2l0dGUgZmlsZW5zIGV0dGVybmF2bi4iCk1DSUVSUl9PVVRPRlJBTkdFLCAJCSJEZW4gb3BwZ2l0dGUgcGFyYW1ldGVyZW4gZXIgdXRlbmZvciByZWtrZXZpZGRlIGZvciBkZW4gb3BwZ2l0dGUga29tbWFuZG9lbi4iCk1DSUVSUl9GTEFHU19OT1RfQ09NUEFUSUJMRSwgCSJEZSBvcHBnaXR0ZSBwYXJhbWV0ZXJuZSBrYW4gaWtrZSBicnVrZXMgc2FtbWVuLiIKTUNJRVJSX0ZJTEVfTk9UX1NBVkVELCAJCSJLdW5uZSBpa2tlIGxhZ3JlIGRlbiBvcHBnaXR0ZSBmaWxlbi4gS29udHJvbGxlciBhdCBkdSBoYXIgbm9rIGRpc2twbGFzcywgb2cgYXQgZHUgZm9ydHNhdHQgZXIgdGlsa29ibGV0IG5ldHR2ZXJrZXQuIgpNQ0lFUlJfREVWSUNFX1RZUEVfUkVRVUlSRUQsIAkiRmFudCBpa2tlIGRlbiBvcHBnaXR0ZSBlbmhldGVuLiBLb250cm9sbGVyIGF0IGRlbiBlciBpbnN0YWxsZXJ0IGVsbGVyIGF0IGVuaGV0c25hdm5ldCBlciByaWt0aWcgc3RhdmV0LiIKTUNJRVJSX0RFVklDRV9MT0NLRUQsIAkJIkRlbiBvcHBnaXR0ZSBlbmhldGVuIGVyIGlmZXJkIG1lZCDlIGF2c2x1dHRlcy4gVmVudCBldCBwYXIgc2VrdW5kZXIgb2cgcHL4diBpZ2plbi4iCk1DSUVSUl9EVVBMSUNBVEVfQUxJQVMsIAkiRGV0IG9wcGdpdHRlIGFsaWFzZXQgYnJ1a2VzIGFsbGVyZWRlIGkgZGV0dGUgcHJvZ3JhbW1ldC4gQnJ1ayBldCB1bmlrdCBhbGlhcy4iCk1DSUVSUl9CQURfQ09OU1RBTlQsIAkJIkRlbiBvcHBnaXR0ZSBwYXJhbWV0ZXJlbiBlciB1Z3lsZGlnIGZvciBkZW5uZSBrb21tYW5kb2VuLiIKTUNJRVJSX01VU1RfVVNFX1NIQVJFQUJMRSwgCSJFbmhldHNkcml2ZXJlbiBlciBhbGxlcmVkZSBpIGJydWsuIEJydWsgcGFyYW1ldGVyZW4gJ3NoYXJlYWJsZScgZm9yIGh2ZXIgJ29wZW4nLWtvbW1hbmRvIGZvciDlIGRlbGUgZGVuLiIKTUNJRVJSX01JU1NJTkdfREVWSUNFX05BTUUsIAkiRGVuIG9wcGdpdHRlIGtvbW1hbmRvZW4ga3JldmVyIGV0IGFsaWFzLCBlbiBmaWwsIGRyaXZlciBlbGxlciBldCBlbmhldHNuYXZuLiIKTUNJRVJSX0JBRF9USU1FX0ZPUk1BVCwgCSJEZW4gb3BwZ2l0dGUgdmFyZGllbiBmb3IgdGlkc2Zvcm1hdGV0IGVyIHVneWxkaWcuIFNlIGkgTUNJLWRva3VtZW50YXNqb25lbiBmb3IgZ3lsZGlnZSBmb3JtYXRlci4iCk1DSUVSUl9OT19DTE9TSU5HX1FVT1RFLCAJIkV0IGRvYmJlbHQgaGVybWV0ZWduIGZvciBsdWtraW5nIG1hbmdsZXIgZnJhIHBhcmFtZXRlcnZlcmRpZW4uIE9wcGdpIGV0LiIKTUNJRVJSX0RVUExJQ0FURV9GTEFHUywgCSJFbiBwYXJhbWV0ZXIgZWxsZXIgdmVyZGkgYmxlIG9wcGdpdHQgdG8gZ2FuZ2VyLiBPcHBnaSBkZXQga3VuIOluIGdhbmcuIgpNQ0lFUlJfSU5WQUxJRF9GSUxFLCAJCSJEZW4gb3BwZ2l0dGUgZmlsZW4ga2FuIGlra2Ugc3BpbGxlcyBhdiBw5SBkZW4gb3BwZ2l0dGUgTUNJLWVuaGV0ZW4uIEZpbGVuIGVyIGthbnNramUga29ycnVwdCwgZWxsZXIgaSBmZWlsIGZvcm1hdC4iCk1DSUVSUl9OVUxMX1BBUkFNRVRFUl9CTE9DSywgCSJFbiBudWxscGFyYW10ZXJibG9rayBibGUgZ2l0dCB0aWwgTUNJLiIKTUNJRVJSX1VOTkFNRURfUkVTT1VSQ0UsIAkiS2FuIGlra2UgbGFncmUgZW4gZmlsIHV0ZW4gYXZuLiBPcHBnaSBldCBmaWxuYXZuLiIKTUNJRVJSX05FV19SRVFVSVJFU19BTElBUywgCSJEdSBt5SBvcHBnaSBldCBhbGlhcyBu5XIgZHUgYnJ1a2VyIHBhcmFtZXRlcmVuICduZXcnLiIKTUNJRVJSX05PVElGWV9PTl9BVVRPX09QRU4sIAkiS2FuIGlra2UgYnJ1a2UgZmxhZ2dldCAnbm90aWZ5JyBtZWQgYXV0b21hdGlzayDlcG5ldGUgZW5oZXRlci4iCk1DSUVSUl9OT19FTEVNRU5UX0FMTE9XRUQsIAkiS2FuIGlra2UgYnJ1a2UgZXQgZmlsbmF2biBtZWQgZGVuIG9wcGdpdHRlIGVuaGV0ZW4uIgpNQ0lFUlJfTk9OQVBQTElDQUJMRV9GVU5DVElPTiwgCSJLdW5uZSBpa2tlIHV0ZvhyZSBrb21tYW5kb2VuIGkgZGVuIG9wcGdpdHRlIHJla2tlZvhsZ2VuLiBPcmRuZSByZWtrZWb4bGdkZW4gb2cgcHL4diBpZ2plbi4iCk1DSUVSUl9JTExFR0FMX0ZPUl9BVVRPX09QRU4sIAkiS3VubmUgaWtrZSB1dGb4cmUgZGVuIG9wcGdpdHRlIGtvbW1hbmRvZW4gcOUgZW4gYXV0b21hdGlzayDlcG5ldCBlbmhldC4gVmVudCB0aWwgZW5oZXRlbiBlciBsdWtrZXQgb2cgcHL4diBpZ2plbi4iCk1DSUVSUl9GSUxFTkFNRV9SRVFVSVJFRCwgCSJGaWxuYXZuZXQgZXIgdWd5bGRpZy4gS29udHJvbGxlciBhdCBmaWxuYXZuZXQgaWtlayBlciBsZW5ncmUgZW5uIDggdGVnbiwgZXR0ZXJmdWxndCBhdiBldCBwdW5rdHVtIG9nIGV0IGV0dGVybmF2bi4iCk1DSUVSUl9FWFRSQV9DSEFSQUNURVJTLCAJIkthbiBpa2tlIG9wcGdpIGVrc3RyYSB0ZWduIGV0dGVyIGVuIHN0cmVuZyBvbXNsdXR0ZXQgYXYgZG9ibGUgYW5m+HJzZWxzdGVnbi4iCk1DSUVSUl9ERVZJQ0VfTk9UX0lOU1RBTExFRCwgCSJEZW4gb3BwZ2l0dGUgZW5oZXRlbiBlciBpa2tlIGluc3RhbGxlcnQgcOUgc3lzdGVtZXQuIEJydWsgdmFsZ2V0ICdEcml2ZXJlJyBpIEtvbnRyb2xscGFuZWwgZm9yIOUgaW5zdGFsbGVyZSBlbmhldGVuLiIKTUNJRVJSX0dFVF9DRCwgCQkJIkZpa2sgaWtrZSB0aWxnYW5nIHRpbCBkZW4gb3BwZ2l0dGUgZmlsZW4gZWxsZXIgTUNpLWVuaGV0ZW4uIFBy+HYg5SBlbmRyZSBrYXRhbG9nZXIgZWxsZXIgc3RhcnRlIG1hc2tpbmVuIHDlIG55dHQuIgpNQ0lFUlJfU0VUX0NELCAJCQkiRmlrayBpa2tlIHRpbGdhbmcgdGlsIGRlbiBvcHBnaXR0ZSBmaWxlbiBlbGxlciBNQ0ktZW5oZXRlbiBmb3JkaSBwcm9ncmFtbWV0IGlra2Uga2FuIGVuZHJlIGFyYmVpZHNrYXRhbG9nLiIKTUNJRVJSX1NFVF9EUklWRSwgCQkiRmlrayBpa2tlIHRpbGdhbmcgdGlsIGRlbiBvcHBnaXR0ZSBmaWxlbiBlbGxlciBNQ0ktZW5oZXRlbiBmb3JkaSBwcm9ncmFtbWV0IGlra2Uga2FuIGVuZHJlIGFyYmVpZHNrYXRhbG9nLiIKTUNJRVJSX0RFVklDRV9MRU5HVEgsIAkJIk9wcGdpIGVuIGVuaGV0IGVsbGVyIGRyaXZlcm5hdm4gc29tIGVyIG1pbmRyZSBlbm4gNzkgdGVnbi4iCk1DSUVSUl9ERVZJQ0VfT1JEX0xFTkdUSCwgCSJPcHBnaSBlbiBlbmhldCBlbGxlciBkcml2ZXJuYXZuIHNvbWVyIG1pbmRyZSBlbm4gNjkgdGVnbi4iCk1DSUVSUl9OT19JTlRFR0VSLCAJCSJEZW4gb3BwZ2l0dGUga29tbWFuZG9lbiB0cmVuZ2VyIGVuIGhlbHRhbGwtcGFyYW1ldGVyLiBPcHBnaSBlbi4iCk1DSUVSUl9XQVZFX09VVFBVVFNJTlVTRSwgCSJBbGxlIGRpZ2l0YWxseWRlbmhldGVuIHNvbSBrYW4gc3BpbGxlIGF2IGZpbGVyIGkgZGV0IGdqZWxkZW5kZSBmb3JtYXRldCBlciBvcHB0YXR0LiBWZW50IHRpbCBlbiBkaWdpdGFsbHlkZW5oZXQgZXIgbGVkaWcgb2cgcHL4diBpZ2plbi4iCk1DSUVSUl9XQVZFX1NFVE9VVFBVVElOVVNFLCAJIkt1bm5lIGlra2Ugc2V0dGUgZGVuIGdqZWxkZW5kZSBkaWdpdGFsbHlkZW5oZXRlbiB0aWwgYXZzcGlsbGluZyBmb3JkaSBkZW4gZXIgaSBicnVrLiBWZW50IHRpbCBlbmhldGVuIGVyIGxlZGlnIG9nIHBy+HYgaWdqZW4uIgpNQ0lFUlJfV0FWRV9JTlBVVFNJTlVTRSwgCSJBbGxlIGRpZ2l0YWxseWRlbmhldGVyIHNvbSBrYW4gdGEgb3BwIGZpbGVyIGkgZGV0IGdqZWxkZW5kZSBmb3JtYXRldCBlciBvcHB0YXR0LiBWZW50IHRpbCBlbiBkaWdpdGFsbHlkZW5oZXQgZXIgbGVkaWcgb2cgcHL4diBpZ2plbi4iCk1DSUVSUl9XQVZFX1NFVElOUFVUSU5VU0UsIAkiS3VubmUgaWtrZSBzZXR0ZSBkZW4gZ2plbGRlbmRlIGRpZ2l0YWxseWRlbmhldGVuIHRpbCBvcHB0YWsgZm9yZGkgZGVuIGVyIGkgYnJ1ay4gVmVudCB0aWwgZW5oZXRlbiBlciBsZWRpZyBvZyBwcvh2IGlnamVuLiIKTUNJRVJSX1dBVkVfT1VUUFVUVU5TUEVDSUZJRUQsCSJFbmh2ZXIga29tcGF0aWJlbCBlbmhldCBmb3IgZGlnaXRhbGx5ZGF2c3BpbGxpbmcga2FuIGJydWtlcy4iCk1DSUVSUl9XQVZFX0lOUFVUVU5TUEVDSUZJRUQsIAkiRW5odmVyIGtvbXBhdGliZWwgbHlkb3BwdGFrZW5oZXQga2FuIGJydWtlcy4iCk1DSUVSUl9XQVZFX09VVFBVVFNVTlNVSVRBQkxFLCAJIkluZ2VuIGRpZ2l0YWxseWRlbmhldCBzb20ga2FuIHNwaWxsZSBhdiBmaWxlciBpIGRldCBnamVsZGVuZGUgZm9ybWF0ZXQgZXIgaW5zdGFsbGVydC4gQnJ1ayB2YWxnZXQgJ0RyaXZlcmUnIGZvciDlIGluc3RhbGxlcmUgZGlnaXRhbGx5ZGVuaGV0ZW4uIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRVTlNVSVRBQkxFLCJFbmhldGVuIGR1IHBy+HZlciDlIHNwaWxsZSBhdiBw5SBnamVua2plbm5lciBpa2tlIGRldCBnamVsZGVuZGUgZmlsZm9ybWF0ZXQuIgpNQ0lFUlJfV0FWRV9JTlBVVFNVTlNVSVRBQkxFLCAJIkluZ2VuIGRpZ2l0YWxseWRlbmhldCBzb20ga2FuIHRhIG9wcCBmaWxlciBpIGRldCBnamVsZGVuZGUgZm9ybWF0ZXQgZXIgaW5zdGFsbGVydC4gQnJ1ayAnRHJpdmVyZSctdmFsZ2V0IGZvciDlIGluc3RhbGxlcmUgZGlnaXRhbGx5ZGVuaGV0ZW4uIgpNQ0lFUlJfV0FWRV9TRVRJTlBVVFVOU1VJVEFCTEUsICJFbmhldGVuIGR1IHBy+HZlciDlIHRhIG9wcCBmcmEgZ2plbmtqZW5uZXIgaWtrZSBkZXQgZ2plbGRlbmRlIGZpbGZvcm1hdGV0LiIKTUNJRVJSX05PX1dJTkRPVywgCQkiRGV0IGVyIGlra2Ugbm9lIHZpc25pbmdzdmluZHUuIgpNQ0lFUlJfQ1JFQVRFV0lORE9XLCAJCSJLdW5uZSBpa2tlIG9wcHJldHRlIGVsbGVyIGJydWtlIHZpbmR1LiIKTUNJRVJSX0ZJTEVfUkVBRCwgCQkiS3VubmUgaWtrZSBsZXNlIGRlbiBvcHBnaXR0ZSBmaWxlbi4gS29udHJvbGxlciBhdCBmaWxlbiBmb3J0c2F0dCBmaW5uZXMsIG9nIGtvbnRyb2xsZXIgZm9yYmluZGVsc2VuIHRpbCBkaXNrZW4gZWxsZXIgbmV0dHZlcmtldC4iCk1DSUVSUl9GSUxFX1dSSVRFLCAJCSJLdW5uZSBpa2tlIHNrcml2ZSB0aWwgZGVuIG9wcGdpdHRlIGZpbGVuLiBLb250cm9sbGVyIGF0IGR1IGhhciBub2sgbGVkaWcgZGlza3BsYXNzLCBvZyBhdCBkdSBmb3J0c2F0dCBlciB0aWxrb2JsZXQgbmV0dHZlcmtldC4iCk1DSUVSUl9TRVFfRElWX0lOQ09NUEFUSUJMRSwgCSJUaWRzZm9ybWF0ZXQgdGlsICIic29uZyBwb2ludGVyIiIgb2cgJ1NNUFRFJyBrYW4gaWtrZSBicnVrZXMgc2FtbWVuLiIKTUNJRVJSX1NFUV9OT01JRElQUkVTRU5ULCAJIlN5c3RlbWV0IGhhciBpa2tlIG5vZW4gaW5zdGFsbGVydGUgTUlESS1lbmhldGVyLiBCcnVrIHZhbGdldCAnRHJpdmVyZScgaSBLb250cm9sbHBhbmVsZXQgZm9yIOUgaW5zdGFsbGVyZSBlbiBNSURJLWRyaXZlci4iCk1DSUVSUl9TRVFfUE9SVF9JTlVTRSwgCQkiRGVuIG9wcGdpdHRlIE1JREktcG9ydGVuIGVyIGFsbGVyZWRlIGkgYnJ1ay4gVmVudCB0aWwgZGVuIGVyIGxlZGlnIG9nIHBy+HYgaWdqZW4uIgpNQ0lFUlJfU0VRX1BPUlRfTUFQTk9ERVZJQ0UsIAkiRGV0IGdqZWxkZW5kZSBvcHBzZXR0ZXQgZm9yIE1JREkta2FydGxlZ2dlcmVuIHJlZmVyZXJlciB0aWwgZW4gTUlESS1lbmhldCBzb20gaWtrZSBlciBpbnN0YWxsZXJ0IHDlIHN5c3RlbWV0LiBCcnVrIHZhbGdldCAnTUlESS1rYXJ0bGVnZ2VyJyBpIEtvbnRyb2xscGFuZWxldCBmb3Ig5SBlbmRyZSBvcHBzZXR0ZXQuIgpNQ0lFUlJfU0VRX1BPUlRfTUlTQ0VSUk9SLCAJIkVuIGZlaWwgb3Bwc3RvZCBtZWQgZGVuIG9wcGdpdHRlIHBvcnRlbi4uIgpNQ0lFUlJfU0VRX1BPUlRfTk9ORVhJU1RFTlQsIAkiRGVuIG9wcGdpdHRlIE1JREktZW5oZXRlbiBlciBpa2tlIGluc3RhbGxlcnQgcOUgc3lzdGVtZXQuIEJydWsgdmFsZ2V0ICdEcml2ZXJlJyBpIEtvbnRyb2xscGFuZWxldCBmb3Ig5SBpbnN0YWxsZXJlIGVuIE1JREktZW5oZXQuIgpNQ0lFUlJfU0VRX1BPUlRVTlNQRUNJRklFRCwgCSJTeXN0ZW1ldCBoYXIgaWtrZSBzcGVzaWZpc2VydCBlbiBnamVsZGVuZGUgTUlESS1wb3J0LiIKTUNJRVJSX1NFUV9USU1FUiwgCQkiQWxsZSBtdWx0aW1lZGlhdGlkdGFrZXJlIGJydWtlcyBhdiBhbmRyZSBwcm9ncmFtbWVyLiBBdnNsdXR0IGV0dCBhdiBkaXNzZSBwcm9ncmFtbWVuZSBvZyBwcvh2IGlnamVuLiIKCkVORAo=