LyoKICogQ29weXJpZ2h0IDIwMDggSmVucyBBbGJyZXRzZW4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKU1RSSU5HVEFCTEUgTEFOR1VBR0UgTEFOR19EQU5JU0gsIFNVQkxBTkdfREVGQVVMVApCRUdJTgoKLyogTU1TWVMgZXJyb3JzICovCk1NU1lTRVJSX05PRVJST1IsICAgICAgICAgICAgICAgIkRlbiBzcGVjaWZpY2VyZWRlIGtvbW1hbmRvIGJsZXYgdWRm+HJ0LiIKTU1TWVNFUlJfRVJST1IsICAgICAgICAgICAgICAgICAiVWRlZmluZXJldCBla3N0ZXJuIGZlamwuIgpNTVNZU0VSUl9CQURERVZJQ0VJRCwgICAgICAgICAgICJFdCBlbmhlZHMgSUQgc29tIGVyIHVkZW5mb3IgcuZra2V2aWRkZSBlciBibGV2ZXQgYnJ1Z3QgcOUgZGl0IHN5c3RlbS4iCk1NU1lTRVJSX05PVEVOQUJMRUQsICAgICAgICAgICAgIkRyaXZlcmVuIGJsZXYgaWtrZSBha3RpdmVyZXQuIgpNTVNZU0VSUl9BTExPQ0FURUQsICAgICAgICAgICAgICJEZW4gc3BlY2lmaWNlcmVkZSBlbmhlZCBlciBhbGxlcmVkZSBpIGJydWcuIFZlbnQgdGlsIGRlbiBlciBsZWRpZyBvZyBwcvh2IGlnZW4uIgpNTVNZU0VSUl9JTlZBTEhBTkRMRSwgCSAgICAgICAgIkRldCBzcGVjaWZpY2VyZWRlIGVuaGVkcyBoYW5kbGUgZXIgdWd5bGRpZ3QuIgpNTVNZU0VSUl9OT0RSSVZFUiwgICAgICAgICAgICAgICJEZXQgZXIgaW5nZW4gZHJpdmVyIGluc3RhbGxlcmV0IHDlIHN5c3RlbWV0LlxuIgpNTVNZU0VSUl9OT01FTSwgICAgICAgICAgICAgICAgICJJa2tlIG5vayBodWtvbW1lbHNlIHRpbHLlZGlnIHRpbCBkZW5uZSBvcGVyYXRpb24uIEFmc2x1dCBldCBlbGxlciBmbGVyZSBwcm9ncmFtbWVyIGZvciBhdCBmcmln+HJlIGh1a29tbWVsc2Ugb2cgcHL4diBpZ2VuLiIKTU1TWVNFUlJfTk9UU1VQUE9SVEVELCAgICAgICAgICAiRGVubmUgZnVua3Rpb24gdW5kZXJzdPh0dGVzIGlra2UuIEJydWcgZnVua3Rpb25lbiAnQ2FwYWJpbGl0aWVzJyBmb3IgYXQgZmluZGUgdWQgYWYgaHZpbGtlIGZ1bmt0aW9uZXIgb2cgbWVkZGVsc2VyIGRyaXZlcmVuIHVuZGVyc3T4dHRlci4iCk1NU1lTRVJSX0JBREVSUk5VTSwgICAgICAgICAgICAgIkV0IHVkZWZpbmVyZXQgZmVqbG51bW1lciBibGV2IHNwZWNpZmljZXJldC4iCk1NU1lTRVJSX0lOVkFMRkxBRywgICAgICAgICAgICAgIkV0IHVneWxkaWd0IGZsYWcgYmxldiBvdmVyZvhydCB0aWwgZW4gc3lzdGVtZnVua3Rpb24uIgpNTVNZU0VSUl9JTlZBTFBBUkFNLCAgICAgICAgICAgICJFbiB1Z3lsZGlnIHBhcmFtZXRlciBibGV2IG92ZXJm+HJ0IHRpbCBlbiBzeXN0ZW1mdW5rdGlvbi4iCgovKiBXQVZFIGVycm9ycyAqLwpXQVZFUlJfQkFERk9STUFULCAgICAgICAgICAgICAgICJEZXQgc3BlY2lmaWNlcmVkZSBmb3JtYXQgdW5kZXJzdPh0dGVzIGlra2UgZWxsZXIga2FuIGlra2Ugb3ZlcnPmdHRlcy4gQnJ1ZyBmdW5rdGlvbmVuICdDYXBhYmlsaXRpZXMnIGZvciBhdCBzZSBkZSB1bmRlcnN0+HR0ZWRlIGZvcm1hdGVyLiIKV0FWRVJSX1NUSUxMUExBWUlORywgICAgICAgICAgICAiS2FuIGlra2UgdWRm+HJlciBkZW5uZSBvcGVyYXRpb24gbWVucyBtZWRpZSBkYXRhIGFmc3BpbGxlcy4gR2Vuc3RhcnQgZW5oZWRlbiwgZWxsZXIgdmVudCB0aWwgZGVuIGVyIGbmcmRpZy4iCldBVkVSUl9VTlBSRVBBUkVELCAgICAgICAgICAgICAgIldhZmUgaGVhZGVyZW4gdmFyIGlra2Uga2xhcmdqb3J0LiBCcnVnIGZ1bmt0aW9uZW4gJ1ByZXBhcmUnIGZvciBhdCBrbGFyZ/hyZSBoZWFkZXJlbiBvZyBwcvh2IGRlcmVmdGVyIGlnZW4uIgpXQVZFUlJfU1lOQywgICAgICAgICAgICAgICAgICAgICJLYW4gaWtrZSDlYm5lIGVuaGVkZW4gdWRlbiBhdCBicnVrZSBmbGFnZ2V0ICdXQVZFX0FMTE9XU1lOQy4gQnJ1ZyBmbGFnZ2V0IG9nIHBy+HYgaWdlbi4iCgovKiBNSURJIGVycm9ycyAqLwpNSURJRVJSX1VOUFJFUEFSRUQsICAgICAgICAgICAgICJNSURJIGhlYWRlcmVuIHZhciBpa2tlIGtsYXJnam9ydC4gQnJ1ZyBmdW5rdGlvbmVuICdQcmVwYXJlJyBmb3IgYXQga2xhcmf4cmUgaGVhZGVyZW4gb2cgcHL4diBkZXJlZnRlciBpZ2VuLiIKTUlESUVSUl9TVElMTFBMQVlJTkcsICAgICAgICAgICAiS2FuIGlra2UgdWRm+HJlciBkZW5uZSBvcGVyYXRpb24gbuVyIG1lZGllIGRhdGEgYWZzcGlsbGVzLiBHZW5zdGFydCBlbmhlZGVuLCBlbGxlciB2ZW50IHRpbCBkZW4gZXIgZuZyZGlnLiIKTUlESUVSUl9OT01BUCwgCQkJIkVuIE1JREkgbWFwIGJsZXYgaWtrZSBmdW5kZXQuIERlciBlciBt5XNrZSBldCBwcm9ibGVtIG1lZCBkcml2ZXJlbiwgZWxsZXIgb2dz5SBlciBmaWxlbiAnTUlESU1BUC5DRkcnIGtvcnJ1cHQgZWxsZXIgbWFuZ2xlci4iCk1JRElFUlJfTk9UUkVBRFksIAkJIlBvcnRlbiBzZW5kZXIgZGF0YSB0aWwgZW5oZWRlbi4gVmVudCB0aWwgZGF0YWVybmUgZXIgc2VuZHQgb2cgcHL4diBpZ2VuLiIKTUlESUVSUl9OT0RFVklDRSwgCQkiRGVuIG51duZyZW5kZSBNYXBwZXIgb3Bz5nRuaW5nIHBlZ2VyIHDlIGVuIE1JREkgZW5oZWQgZGVyIGlra2UgZXIgaW5zdGFsbGVyZXQgaSBzeXN0ZW1ldC4gYnJ1ZyBNSURJIE1hcHBlcidlbiB0aWwgZWRpdGVyZSBvcHPmdG5pbmdlbi4iCk1JRElFUlJfSU5WQUxJRFNFVFVQLCAJCSJEZW4gbnV25nJlbmRlIE1JREkgb3Bz5nRuaW5nIGVyIHNrYWRldC4gS29waWVyIGRlbiBvcmlnaW5hbGUgTUlESU1BUC5DRkcgZmlsIGluZCBpIFdpbmRvd3MgU1lTVEVNIGZvbGRlcmVuLCBvZyBwcvh2IGlnZW4uIgoKLyogTUNJIGVycm9ycyAqLwpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfSUQsIAkiVWd5bGRpZyBNQ0kgZW5oZWRzIElELiBCcnVnIElEJ2V0IHNvbSByZXR1cm5lcmVzIG7lciBNQ0ktZW5oZXRkbiDlYm5lcy4iCk1DSUVSUl9VTlJFQ09HTklaRURfS0VZV09SRCwgCSJEcml2ZXJlbiBrdW5uZSBpa2tlIGdlbmtlbmRlIGRlbiBzcGVjaWZpY2VyZWRlIGtvbW1hbmRvcGFyYW1ldGVyLiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9DT01NQU5ELAkiRHJpdmVyZW4ga3VubmUgaWtrZSBnZW5rZW5kZSBkZW4gc3BlY2lmaWNlcmVkZSBrb21tYW5kby4iCk1DSUVSUl9IQVJEV0FSRSwgCQkiRGV0IGVyIGV0IHByb2JsZW0gbWVkIG1lZGllZW5oZWRlbi4gU/hyZyBmb3IgYXQgZGVuIHZpcmtlciBvcmRlbnRsaWcgZWxsZXIga29udGFrdCBsZXZlcmFuZPhyZW4uIgpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfTkFNRSwgCSJEZW4gc3BlY2lmaWNlcmVkZSBlbmhlZCBlciBpa2tlIOViZW4sIGVsbGVyIGlra2UgZ2Vua2VuZHQgYWYgTUNJLiIKTUNJRVJSX09VVF9PRl9NRU1PUlksIAkJIklra2Ugbm9rIGh1a29tbWVsc2UgdGlsIGRlbm5lIG9wZXJhdGlvbi5cbkFmc2x1dCBldCBlbGxlciBmbGVyZSBwcm9ncmFtbWVyIGZvciBhdCBmcmln+HJlIGh1a29tbWVsc2Ugb2cgcHL4diBpZ2VuLiIKTUNJRVJSX0RFVklDRV9PUEVOLCAJCSJFbmhlZHNuYWZuZXQgYnJ1Z2VzIGFsbGVyZWRlIHNvbSBldCBhbGllcyBhZiBkZXR0ZSBwcm9ncmFtLiBCcnVnIGV0IHVuaWt0IGFsaWFzLiIKTUNJRVJSX0NBTk5PVF9MT0FEX0RSSVZFUiwgCSJFdCB1a2VuZHQgcHJvYmxlbSBvcHN0b2QgdW5kZXIgaW5kbOZzbmluZ2VuIGFmIGRlbiBzcGVjaWZpY2VyZWRlIGRyaXZlci4iCk1DSUVSUl9NSVNTSU5HX0NPTU1BTkRfU1RSSU5HLCAJIkRlciBibGV2IGlra2Ugc3BlY2lmaWNlcmV0IG5vZ2VuIGtvbW1hbmRvLiIKTUNJRVJSX1BBUkFNX09WRVJGTE9XLCAJCSJEZW4gc2tyZXZuZSBzdHJlbmcgdmFyIGZvciBzdG9yIHRpbCBhdCB25nJlIGkgcmV0dXIgYnVmZmVyZW4uIEZvcvhnIHN0+HJyZWxzZW4gcOUgYnVmZmVyZW4uIgpNQ0lFUlJfTUlTU0lOR19TVFJJTkdfQVJHVU1FTlQsICJEZW4gc3BlY2lmaWNlcmVkZSBrb21tYW5kbyBrcuZ2ZXIgZW4gdGVnbnN0cmVuZ3MgcGFyYW1ldGVyLiBBbmdpdiBlbi4iCk1DSUVSUl9CQURfSU5URUdFUiwgCQkiRGV0IHNwZWNpZmljZXJlZGUgaGVsdGFsIGVyIHVneWxkaWd0IHRpbCBkZW5uZSBrb21tYW5kby4iCk1DSUVSUl9QQVJTRVJfSU5URVJOQUwsIAkiRW5oZWRzZHJpdmVyZW4gcmV0dXJuZXJlZGUgZW4gdWd5bGRpZyByZXR1ciB0eXBlLiBLb250YWt0IHByb2R1Y2VudGVuIGZvciBhdCBm5SBlbiBueSBkcml2ZXIuIgpNQ0lFUlJfRFJJVkVSX0lOVEVSTkFMLCAJIkRlciBlciBldCBwcm9ibGVtIG1lZCBlbmhlZHNkcml2ZXJlbi4gS29udGFrdCBwcm9kdWNlbnRlbiBmb3IgYXQgZuUgZW4gbnkgZHJpdmVyLiIKTUNJRVJSX01JU1NJTkdfUEFSQU1FVEVSLCAJIkRlbiBzcGVjaWZpY2VyZWRlIGtvbW1hbmRvIGty5nZlciBlbiBwYXJhbWV0ZXIuIEFuZ2l2IGVuLiIKTUNJRVJSX1VOU1VQUE9SVEVEX0ZVTkNUSU9OLCAJIk1DSSBlbmhlZGVuIHNvbSBicnVnZXMgdW5kZXJzdPh0dGVyIGlra2UgZGVuIHNwZWNpZmljZXJlZGUga29tbWFuZG8uIgpNQ0lFUlJfRklMRV9OT1RfRk9VTkQsIAkJIkt1bm5lIGlra2UgZmluZGUgZGVuIHNwZWNpZmljZXJlZGUgZmlsLiBLb250cm9sbGVyIGF0IHN0aWVuIG9nIGZpbG5hZm5ldCBlciByaWd0aWd0LiIKTUNJRVJSX0RFVklDRV9OT1RfUkVBRFksIAkiRW5oZWRzZHJpdmVyZW4gZXIgaWtrZSBrbGFyLiIKTUNJRVJSX0lOVEVSTkFMLCAJCSJFdCBwcm9ibGVtIG9wc3RvZCB1bmRlciBpbml0YWxpc2VyaW5nZW4gYWYgTUNJLiBQcvh2IGF0IGdlbnN0YXJ0ZSBXaW5lLiIKTUNJRVJSX0RSSVZFUiwgCQkJIkRlciBlciBldCBwcm9ibGVtIG1lZCBlbmhlZHNkcml2ZXJlbi4gRHJpdmVyZW4gYmxldiBsdWtrZXQsIGluZ2VuIGFkZ2FuZyBmZWpsLiIKTUNJRVJSX0NBTk5PVF9VU0VfQUxMLCAJCSJLYW4gaWtrZSBicnVnZSAnYWxsJyBzb20gZW5oZWRzbmFmbiBtZWQgZGVuIHNwZWNpZmljZXJlZGUga29tbWFuZG8uIgpNQ0lFUlJfTVVMVElQTEUsIAkJIkRlciBvcHN0b2QgZmVqbCBpIG1lcmUgZW5kIGVuIGVuaGVkLiBBbmdpdiBodmVyIGtvbW1hbmRvIG9nIGVuaGVkIHNlcGVyYXQgZm9yIGF0IGZpbmRlIHVkIGh2aWxrZW4gZW5oZWQgc29tIGZvcuVyc2FnZWRlIGZlamxlbi4iCk1DSUVSUl9FWFRFTlNJT05fTk9UX0ZPVU5ELCAJIkthbiBpa2tlIGJlc3RlbW1lIGVuaGVkc3R5cGVuIHVkIGZyYSBkZW4gb3BnaXZlZGUgZmlsIGVmdGVybmFmbi4iCk1DSUVSUl9PVVRPRlJBTkdFLCAJCSJEZW4gc3BlY2lmaWNlcmVkZSBwYXJhbWV0ZXIgZXIgdWRlbmZvciBy5mtrZXZpZGRlIGZvciBkZW4gc3BlY2lmaWNlcmVkZSBrb21tYW5kby4iCk1DSUVSUl9GTEFHU19OT1RfQ09NUEFUSUJMRSwgCSJEZSBzcGVjaWZpY2VyZWRlIHBhcmFtZXRlcmUga2FuIGlra2UgYnJ1Z2VzIHNhbW1lbi4iCk1DSUVSUl9GSUxFX05PVF9TQVZFRCwgCQkiS3VubmUgaWtrZSBnZW1tZSBkZW4gc3BlY2lmaWNlcmVkZSBmaWwuIEtvbnRyb2xsZXIgYXQgZHUgaGFyIG5vayBmcmkgZGlza3BsYWRzIGVsbGVyIGF0IGR1IGZvcnRzYXQgZXIgdGlsa29ibGV0IG5ldHbmcmtldC4iCk1DSUVSUl9ERVZJQ0VfVFlQRV9SRVFVSVJFRCwgCSJGYW5kdCBpa2tlIGRlbiBzcGVjaWZpY2VyZWRlIGVuaGVkbi4gS29udHJvbGxlciBhdCBkZW4gZXIgaW5zdGFsbGVyZXQgZWxsZXIgYXQgZW5oZWRzbmFmbmV0IGVyIHJpZ3RpZ3Qgc3RhZmV0LiIKTUNJRVJSX0RFVklDRV9MT0NLRUQsIAkJIkRlbiBzcGVjaWZpY2VyZWRlIGVuaGVkIGVyIGlnYW5nIG1lZCBhdCBibGl2ZSBsdWtrZXQuIFZlbnQgZXQgcGFyIHNla3VuZGVyIG9nIHBy+HYgaWdlbi4iCk1DSUVSUl9EVVBMSUNBVEVfQUxJQVMsIAkiRGV0IHNwZWNpZmljZXJlZGUgYWxpYXMgYnJ1Z2VzIGFsbGVyZWRlIGkgZGV0dGUgcHJvZ3JhbS4gQnJ1ZyBldCB1bmlrdCBhbGlhcy4iCk1DSUVSUl9CQURfQ09OU1RBTlQsIAkJIkRlbiBzcGVjaWZpY2VyZWRlIHBhcmFtZXRlciBlciB1Z3lsZGlnIHRpbCBkZW5uZSBrb21tYW5kby4iCk1DSUVSUl9NVVNUX1VTRV9TSEFSRUFCTEUsIAkiRW5oZWRzZHJpdmVyZW4gZXIgYWxsZXJlZGUgaSBicnVnLiBCcnVnIHBhcmFtZXRlcmVuICdzaGFyZWFibGUnIGZvciBodmVyICdvcGVuJy1rb21tYW5kbyBmb3IgYXQgZGVsZSBkZW4uIgpNQ0lFUlJfTUlTU0lOR19ERVZJQ0VfTkFNRSwgCSJEZW4gc3BlY2lmaWNlcmVkZSBrb21tYW5kbyBrcuZ2ZXIgZXQgYWxpYXMsIGVuIGZpbCwgZHJpdmVyIGVsbGVyIGV0IGVuaGVkc25hZm4uIgpNQ0lFUlJfQkFEX1RJTUVfRk9STUFULCAJIkRlbiBzcGVjaWZpY2VyZWRlIHbmcmRpIGZvciB0aWRzZm9ybWF0ZXQgZXIgdWd5bGRpZ3QuIFNlIGkgTUNJIGRva3VtZW50YXRpb25lbiBlZnRlciBneWxkaWdlIGZvcm1hdGVyLiIKTUNJRVJSX05PX0NMT1NJTkdfUVVPVEUsIAkiRXQgYWZzbHV0dGVuZGUgYW5m+HJlbHNlc3RlZ24gbWFuZ2xlciBpIHBhcmFtZXRlciB25nJkaWVuLiBUaWxm+GogZXQuIgpNQ0lFUlJfRFVQTElDQVRFX0ZMQUdTLCAJIlBhcmFtZXRlcmVuIGVsbGVyIHbmcmRpZW4gYmxldiBhbmdpdmV0IHRvIGdhbmdlci4gQW5naXYgZGV0IGt1biBlbiBnYW5nLiIKTUNJRVJSX0lOVkFMSURfRklMRSwgCQkiRGVuIHNwZWNpZmljZXJlZGUgZmlsIGthbiBpa2tlIHNwaWxsZXMgYWYgcOUgZGVuIHNwZWNpZmljZXJlZGUgTUNJIGVuaGVkLiBGaWxlbiBlciBt5XNrZSBrb3JydXB0LCBlbGxlciBpIGZvcmtlcnQgZm9ybWF0LiIKTUNJRVJSX05VTExfUEFSQU1FVEVSX0JMT0NLLCAJIkVuIG51bGwgcGFyYW1ldGVyIGJsb2sgYmxldiBnaXZldCB0aWwgTUNJLiIKTUNJRVJSX1VOTkFNRURfUkVTT1VSQ0UsIAkiS2FuIGlra2UgZ2VtbWUgZW4gZmlsIHVkZW4gbmFmbi4gQW5naXYgZXQgZmlsbmFmbi4iCk1DSUVSUl9ORVdfUkVRVUlSRVNfQUxJQVMsIAkiRHUgc2thbCBzcGVjaWZpY2VyZSBldCBhbGlhcyBu5XIgZHUgYnJ1Z2VyIHBhcmFtZXRlcmVuICduZXcnLiIKTUNJRVJSX05PVElGWV9PTl9BVVRPX09QRU4sIAkiS2FuIGlra2UgYnJ1Z2UgZmxhZ2dldCAnbm90aWZ5JyBtZWQgYXV0b21hdGlzayDlYm5lZGUgZW5oZWRlci4iCk1DSUVSUl9OT19FTEVNRU5UX0FMTE9XRUQsIAkiS2FuIGlra2UgYnJ1Z2UgZXQgZmlsbmFmbiBtZWQgZGVuIHNwZWNpZmljZXJlZGUgZW5oZWQuIgpNQ0lFUlJfTk9OQVBQTElDQUJMRV9GVU5DVElPTiwgCSJLdW5uZSBpa2tlIHVkZvhyZSBrb21tYW5kb2VuIGkgZGVuIHNwZWNpZmljZXJlZGUgcuZra2Vm+GxnZS4gUmV0IHLma2tlZvhsZ2VuIG9nIHBy+HYgaWdlbi4iCk1DSUVSUl9JTExFR0FMX0ZPUl9BVVRPX09QRU4sIAkiS3VubmUgaWtrZSB1ZGb4cmUgZGVuIHNwZWNpZmljZXJlZGUga29tbWFuZG8gcOUgZW4gYXV0b21hdGlzayDlYm5ldCBlbmhlZC4gVmVudCB0aWwgZW5oZWRlbiBlciBsdWtrZXQgb2cgcHL4diBpZ2VuLiIKTUNJRVJSX0ZJTEVOQU1FX1JFUVVJUkVELCAJIkZpbG5hZm5ldCBlciB1Z3lsZGlndC4gS29udHJvbGxlciBhdCBmaWxuYWZuZXQgaWtrZSBlciBs5m5nZXJlIGVuZCA4IHRlZ24sIGVmdGVyZnVsZ3QgYWYgZXQgcHVua3R1bSBvZyBlbiBmaWwgdHlwZSAoMyB0ZWduKS4iCk1DSUVSUl9FWFRSQV9DSEFSQUNURVJTLCAJIkthbiBpa2tlIHNwZWNpZmljZXJlIGVrc3RyYSB0ZWduIGVmdGVyIGVuIHN0cmVuZyBvbWdpdmV0IGFmIGFuZvhyZWxzZXN0ZWduLiIKTUNJRVJSX0RFVklDRV9OT1RfSU5TVEFMTEVELCAJIkRlbiBzcGVjaWZpY2VyZWRlIGVuaGVkIGVyIGlra2UgaW5zdGFsbGVyZXQgaSBzeXN0ZW1ldC4gQnJ1ZyB2YWxnZXQgJ0RyaXZlcmUnIGkgS29udHJvbHBhbmVsZXQgZm9yIGF0IGluc3RhbGxlcmUgZW5oZWRlbi4iCk1DSUVSUl9HRVRfQ0QsIAkJCSJLYW4gaWtrZSB0aWxn5SBkZW4gc3BlY2lmaWNlcmVkZSBmaWwgZWxsZXIgTUNJIGVuaGVkLiBQcvh2IGF0IOZuZHJlIGZvbGRlciBlbGxlciBhdCBnZW5zdGFydGUgZGluIGNvbXB1dGVyLiIKTUNJRVJSX1NFVF9DRCwgCQkJIkthbiBpa2tlIHRpbGflIGRlbiBzcGVjaWZpY2VyZWRlIGZpbCBlbGxlciBNQ0kgZW5oZWQgZm9yZGkgcHJvZ3JhbW1ldCBpa2tlIGthbiBza2lmdGUgZm9sZGVyLiIKTUNJRVJSX1NFVF9EUklWRSwgCQkiS2FuIGlra2UgdGlsZ+UgZGVuIHNwZWNpZmljZXJlZGUgZmlsIGVsbGVyIE1DSSBlbmhlZCBmb3JkaSBwcm9ncmFtbWV0IGlra2Uga2FuIHNraWZ0ZSBkcmV2LiIKTUNJRVJSX0RFVklDRV9MRU5HVEgsIAkJIlNwZWNpZmljZXIgZW4gZW5oZWQgZWxsZXIgZHJpdmVybmFmbiBzb20gZXIgbWluZHJlIGVuIDc5IHRlZ24uIgpNQ0lFUlJfREVWSUNFX09SRF9MRU5HVEgsIAkiU3BlY2lmaWNlciBlbiBlbmhlZCBlbGxlciBkcml2ZXJuYWZuIHNvbSBlciBtaW5kcmUgZW4gNjkgdGVnbi4iCk1DSUVSUl9OT19JTlRFR0VSLCAJCSJEZW4gc3BlY2lmaWNlcmVkZSBrb21tYW5kbyBoYXIgYnJ1ZyBmb3IgZW4gaGVsdGFscyBwYXJhbWV0ZXIuIEFuZ2l2IGV0LiIKTUNJRVJSX1dBVkVfT1VUUFVUU0lOVVNFLCAJIkFsbGUgbHlkZW5oZWRlciBzb20ga2FuIGFmc3BpbGxlIGZpbGVyIGkgZGV0IHDlZ+ZsZGVuZGUgZm9ybWF0IGVyIG9wdGFnZWRlLiBWZW50IHRpbCBhdCBlbiBhZiBseWRlbmhlZGVybmUgZXIgbGVkaWdlIG9nIHBy+HYgaWdlbi4iCk1DSUVSUl9XQVZFX1NFVE9VVFBVVElOVVNFLCAJIkt1bm5lIGlra2Ugc+Z0dGUgZGVuIGfmbGRlbmRlIGx5ZGVuaGVkIHRpbCBhZnNwaWxuaW5nIGZvcmRpIGRlbiBlciBpIGJydWcuIFZlbnQgdGlsIGF0IGVuaGVkZW4gZXIgbGVkaWcgb2cgcHL4diBpZ2VuLiIKTUNJRVJSX1dBVkVfSU5QVVRTSU5VU0UsIAkiQWxsZSBseWRlbmhlZGVyIHNvbSBrYW4gb3B0YWdlIGZpbGVyIGkgZGV0IGfmbGRlbmRlIGZvcm1hdCBlciBvcHRhZ2VkZS4gVmVudCB0aWwgYXQgZW4gYWYgbHlkZW5oZWRlcm5lIGVyIGxlZGlnZSBvZyBwcvh2IGlnZW4uIgpNQ0lFUlJfV0FWRV9TRVRJTlBVVElOVVNFLCAJIkt1bm5lIGlra2Ugc+Z0dGUgZGVuIGfmbGRlbmRlIGx5ZGVuaGVkIHRpbCBhdCBvcHRhZ2UgZm9yZGkgZGVuIGVyIGkgYnJ1Zy4gVmVudCB0aWwgYXQgZW5oZWRlbiBlciBsZWRpZyBvZyBwcvh2IGlnZW4uIgpNQ0lFUlJfV0FWRV9PVVRQVVRVTlNQRUNJRklFRCwJIkVuaHZlciBrb21wYXRpYmVsIGVuaGVkIHRpbCBseWRhZnNwaWxsaW5nIGthbiBicnVnZXMuIgpNQ0lFUlJfV0FWRV9JTlBVVFVOU1BFQ0lGSUVELCAJIkVuaHZlciBrb21wYXRpYmVsIGVuaGVkIHRpbCBseWRvcHRhZ2VuaW5nIGthbiBicnVnZXMuIgpNQ0lFUlJfV0FWRV9PVVRQVVRTVU5TVUlUQUJMRSwgCSJJbmdlbiBseWRlbmhlZCBzb20ga2FuIGFmc3BpbGxlIGZpbGVyIGkgZGV0IGfmbGRlbmRlIGZvcm1hdGV0IGVyIGluc3RhbGxlcmV0LiBCcnVnICdEcml2ZXJlJyBmb3IgYXQgaW5zdGFsbGVyZSBseWRlbmhlZGVuLiIKTUNJRVJSX1dBVkVfU0VUT1VUUFVUVU5TVUlUQUJMRSwiRW5oZWRlbiBkdSBwcvh2ZXIgYXQgYWZzcGlsbGUgZnJhLCBnZW5rZW5kZXIgaWtrZSBkZXQgZ+ZsZGVuZGUgZmlsZm9ybWF0LiIKTUNJRVJSX1dBVkVfSU5QVVRTVU5TVUlUQUJMRSwgCSJJbmdlbiBseWRlbmhlZCBzb20ga2FuIG9wdGFnZSBmaWxlciBpIGRldCBn5mxkZW5kZSBmb3JtYXQgZXIgaW5zdGFsbGVyZXQuIEJydWcgJ0RyaXZlcmUnIGZvciBhdCBpbnN0YWxsZXJlIGx5ZGVuaGVkZW4uIgpNQ0lFUlJfV0FWRV9TRVRJTlBVVFVOU1VJVEFCTEUsICJFbmhlZGVuIGR1IHBy+HZlciBhdCBvcHRhZ2UgcOUsIGdlbmtlbmRlciBpa2tlIGRldCBn5mxkZW5kZSBmaWxmb3JtYXQuIgpNQ0lFUlJfTk9fV0lORE9XLCAJCSJEZXIgZXIgaWtrZSBub2dldCB2aW5kdWUuIgpNQ0lFUlJfQ1JFQVRFV0lORE9XLCAJCSJLdW5uZSBpa2tlIG9wcmV0dGUgZWxsZXIgYnJ1Z2UgdmluZHVldC4iCk1DSUVSUl9GSUxFX1JFQUQsIAkJIkt1bm5lIGlra2UgbOZzZSBkZW4gc3BlY2lmaWNlcmVkZSBmaWwuIEtvbnRyb2xsZXIgYXQgZmlsZW4gZm9ydHNhdCBmaW5kZXMsIG9nIGtvbnRyb2xsZXIgZm9yYmluZGVsc2VuIHRpbCBkaXNrZW4gZWxsZXIgbmV0duZya2V0LiIKTUNJRVJSX0ZJTEVfV1JJVEUsIAkJIkt1bm5lIGlra2Ugc2tyaXZlIHRpbCBkZW4gc3BlY2lmaWNlcmVkZSBmaWwuIEtvbnRyb2xsZXIgYXQgZHUgaGFyIG5vayBmcmkgZGlza3BsYWRzLCBvZyBhdCBkdSBmb3J0c2F0IGVyIHRpbGtvYmxldCBuZXR25nJrZXQuIgpNQ0lFUlJfU0VRX0RJVl9JTkNPTVBBVElCTEUsIAkiVGlkc2Zvcm1hdGV0IHRpbCAiInNvbmcgcG9pbnRlciIiIG9nICdTTVBURScga2FuIGlra2UgYnJ1Z2VzIHNhbW1lbi4iCk1DSUVSUl9TRVFfTk9NSURJUFJFU0VOVCwgCSJTeXN0ZW1ldCBoYXIgaWtrZSBub2dlbiBpbnN0YWxsZXJlZGUgTUlESSBlbmhlZGVyLiBCcnVnICdEcml2ZXJlJyBpIEtvbnRyb2xwYW5lbGV0IGZvciBhdCBpbnN0YWxsZXJlIGVuIE1JREkgZHJpdmVyLiIKTUNJRVJSX1NFUV9QT1JUX0lOVVNFLCAJCSJEZW4gc3BlY2lmaWNlcmVkZSBNSURJIHBvcnQgZXIgYWxsZXJlZGUgaSBicnVnLiBWZW50IHRpbCBkZW4gZXIgbGVkaWcgb2cgcHL4diBpZ2VuLiIKTUNJRVJSX1NFUV9QT1JUX01BUE5PREVWSUNFLCAJIkRldCBn5mxkZW5kZSBvcHPmdG5pbmcgZm9yIE1JREkgbWFwcGVyZW4gcmVmZXJlcmVyIHRpbCBlbiBNSURJIGVuaGVkIHNvbSBpa2tlIGVyIGluc3RhbGxlcmV0IGkgc3lzdGVtZXQuIEJydWcgJ01JREkgbWFwcGVyJyBpIEtvbnRyb2xwYW5lbGV0IGZvciBhdCDmbmRyZSBvcHPmdG5pbmdlbi4iCk1DSUVSUl9TRVFfUE9SVF9NSVNDRVJST1IsIAkiRW4gZmVqbCBvcHN0b2QgbWVkIGRlbiBzcGVjaWZpY2VyZWRlIHBvcnQuLiIKTUNJRVJSX1NFUV9QT1JUX05PTkVYSVNURU5ULCAJIkRlbiBzcGVjaWZpY2VyZWRlIE1JREkgZW5oZWQgZXIgaWtrZSBpbnN0YWxsZXJldCBw5SBzeXN0ZW1ldC4gQnJ1ZyAnRHJpdmVyZScgaSBLb250cm9sbHBhbmVsZXQgZm9yIGF0IGluc3RhbGxlcmUgZW4gTUlESSBlbmhlZC4iCk1DSUVSUl9TRVFfUE9SVFVOU1BFQ0lGSUVELCAJIlN5c3RlbWV0IGhhciBpa2tlIHNwZWNpZmljZXJldCBlbiBn5mxkZW5kZSBNSURJIHBvcnQuIgpNQ0lFUlJfU0VRX1RJTUVSLCAJCSJBbGxlIG11bHRpbWVkaWF0aWRzdGFnZXJlIGJydWdlcyBhZiBhbmRyZSBwcm9ncmFtbWVyLiBMdWsgZXQgYWYgZGUgcHJvZ3JhbW1lciBvZyBwcvh2IGlnZW4uIgoKRU5ECg==