LyoKICogQ29weXJpZ2h0IDIwMDQgSGVubmluZyBHZXJoYXJkdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgpTVFJJTkdUQUJMRSBMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ORVVUUkFMCkJFR0lOCgovKiBNTVNZUyBlcnJvcnMgKi8KTU1TWVNFUlJfTk9FUlJPUiwgCQkiRGVyIGFuZ2Vmb3JkZXJ0ZSBCZWZlaGwgd3VyZGUgYXVzZ2Vm/GhydC4iCk1NU1lTRVJSX0VSUk9SLCAJCSJVbmJla2FubnRlciBleHRlcm5lciBGZWhsZXIuIgpNTVNZU0VSUl9CQURERVZJQ0VJRCwgCQkiRGllIGRlcnplaXQgdmVyd2VuZGV0ZSBHZXLkdGVrZW5udW5nIGlzdCBhdd9lcmhhbGIgZGVzIHp1bORzc2lnZW4gQmVyZWljaHMgZvxyIElociBTeXN0ZW0uIgpNTVNZU0VSUl9OT1RFTkFCTEVELCAJCSJEZXIgVHJlaWJlciBrb25udGUgbmljaHQgZ2VzdGFydGV0IHdlcmRlbi4iCk1NU1lTRVJSX0FMTE9DQVRFRCwgCQkiRGFzIEdlcuR0IHdpcmQgYmVyZWl0cyB2ZXJ3ZW5kZXQuIFdhcnRlbiBTaWUsIGJpcyBlcyBmcmVpZ2VnZWJlbiBpc3QsIHVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4iCk1NU1lTRVJSX0lOVkFMSEFORExFLCAJCSJEYXMgYW5nZWdlYmVuZGUgR2Vy5HRlaGFuZGxlIGlzdCB1bmf8bHRpZy4iCk1NU1lTRVJSX05PRFJJVkVSLCAJCSJFcyBpc3Qga2VpbiBUcmVpYmVyIGF1ZiBJaHJlbSBTeXN0ZW0gaW5zdGFsbGllcnQgIVxuIgpNTVNZU0VSUl9OT01FTSwgCQkiTmljaHQgZ2Vu/GdlbmQgU3BlaWNoZXIgZvxyIGRpZXNlbiBCZWZlaGwuIEJlZW5kZW4gU2llIGVpbmUgb2RlciBtZWhyZXJlIEFud2VuZHVuZ2VuLCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNTVNZU0VSUl9OT1RTVVBQT1JURUQsCQkiRGllc2UgRnVua3Rpb24gd2lyZCBuaWNodCB1bnRlcnN0/HR6dC4gQmVudXR6ZW4gU2llIGRpZSBGdW5rdGlvbiAnQ2FwYWJpbGl0aWVzJywgdW0genUgZXJtaXR0ZWxuLCB3ZWxjaGUgRnVua3Rpb24gZGllc2VyIFRyZWliZXIgdW50ZXJzdPx0enQuIgpNTVNZU0VSUl9CQURFUlJOVU0sIAkJIkRpZSBhbmdlZ2ViZW5lIEZlaGxlcm51bW1lciBpc3QgZvxyIGRpZXNlcyBTeXN0ZW0gbmljaHQgZGVmaW5pZXJ0LiIKTU1TWVNFUlJfSU5WQUxGTEFHLCAJCSJFaW4gdW5n/Gx0aWdlcyBGbGFnIHd1cmRlIGFuIGVpbmUgU3lzdGVtZnVua3Rpb24g/GJlcmdlYmVuLiIKTU1TWVNFUlJfSU5WQUxQQVJBTSwgCQkiRWluIHVuZ/xsdGlnZXIgUGFyYW1ldGVyIHd1cmRlIGFuIGVpbmUgU3lzdGVtZnVua3Rpb24g/GJlcmdlYmVuLiIKCi8qIFdBVkUgZXJyb3JzICovCldBVkVSUl9CQURGT1JNQVQsIAkJIkRpZXNlcyBGb3JtYXQgd2lyZCBuaWNodCB1bnRlcnN0/HR6dCBvZGVyIGthbm4gbmljaHQg/GJlcnNldHp0IHdlcmRlbi4gQmVudXR6ZW4gU2llIGRpZSBGdW5rdGlvbiAnQ2FwYWJpbGl0aWVzJywgdW0gZGllIHVudGVyc3T8dHp0ZW4gRm9ybWF0ZSB6dSBlcm1pdHRlbG4uIgpXQVZFUlJfU1RJTExQTEFZSU5HLCAJCSJEaWUgRnVua3Rpb24ga2FubiBuaWNodCBkdXJjaGdlZvxocnQgd2VyZGVuLCB3ZW5uIG5vY2ggTWVkaWVuZGF0ZWllbiB3aWVkZXJnZWdlYmVuIHdlcmRlbi4gU3RhcnRlbiBTaWUgZGFzIEdlcuR0IG5ldSwgb2RlciB3YXJ0ZW4gU2llIGJpcyBrZWluZSBEYXRlbiBtZWhyIHdpZWRlcmdlZ2ViZW4gd2VyZGVuLiIKV0FWRVJSX1VOUFJFUEFSRUQsIAkJIkRlciBXQVZFIC0gSGVhZGVyIHd1cmRlIG5pY2h0IHZvcmJlcmVpdGV0LiBCZW51dHplbiBTaWUgZGllIEZ1bmt0aW9uICdQcmVwYXJlJyB6dW0gVm9yYmVyZWl0ZW4gZGVzIEhlYWRlcnMgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKV0FWRVJSX1NZTkMsIAkJCSJEYXMgR2Vy5HQga2FubiBuaWNodCBvaG5lIGRhcyBXQVZFX0FMTE9XU1lOQyAtIEZsYWcgZ2X2ZmZuZXQgd2VyZGVuLiBCZW51dHplbiBTaWUgZGllc2VzIEZsYWcgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKCi8qIE1JREkgZXJyb3JzICovCk1JRElFUlJfVU5QUkVQQVJFRCwgCQkiRGVyIE1JREkgLSBIZWFkZXIgd3VyZGUgbmljaHQgdm9yYmVyZWl0ZXQuIEJlbnV0emVuIFNpZSBkaWUgRnVua3Rpb24gJ1ByZXBhcmUnIHp1bSBWb3JiZXJlaXRlbiBkZXMgSGVhZGVycyB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNSURJRVJSX1NUSUxMUExBWUlORywgCQkiRGllIEZ1bmt0aW9uIGthbm4gbmljaHQgZHVyY2hnZWb8aHJ0IHdlcmRlbiwgd2VubiBub2NoIE1lZGllbmRhdGVpZW4gd2llZGVyZ2VnZWJlbiB3ZXJkZW4uIFN0YXJ0ZW4gU2llIGRhcyBHZXLkdCBuZXUsIG9kZXIgd2FydGVuIFNpZSBiaXMga2VpbmUgRGF0ZW4gbWVociB3aWVkZXJnZWdlYmVuIHdlcmRlbi4iCk1JRElFUlJfTk9NQVAsIAkJIkVzIHd1cmRlIGtlaW5lIE1JREkgLSBNYXAgZ2VmdW5kZW4uIEVzIGv2bm50ZSBlaW4gUHJvYmxlbSBtaXQgZGVtIFRyZWliZXIgZ2ViZW4gb2RlciBkaWUgRGF0ZWkgTUlESU1BUC5DRkcgZmVobHQgb2RlciBpc3QgYmVzY2jkZGlndC4iCk1JRElFUlJfTk9UUkVBRFksIAkJIkRlciBBbnNjaGx1c3MgaXN0IG1pdCBkZXIgRGF0ZW5hdXNnYWJlIGJlbGVndC4gV2FydGVuIFNpZSwgYmlzIGRpZSBEYXRlbiD8YmVydHJhZ2VuIHd1cmRlbiB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNSURJRVJSX05PREVWSUNFLCAJCSJEYXMgZ2VnZW535HJ0aWdlIE1JREkgLSBNYXBwZXIgU2V0dXAgYmVudXR6dCBlaW4gTUlESSAtIEdlcuR0LCBkYXMgbmljaHQgaW5zdGFsbGllcnQgaXN0LiBCZW51dHplbiBTaWUgZGVuIE1JREkgLSBNYXBwZXIsIHVtIGRhcyBTZXR1cCB6dSDkbmRlcm4uIgpNSURJRVJSX0lOVkFMSURTRVRVUCwgCQkiRGFzIGFrdHVlbGxlIE1JREkgU2V0dXAgaXN0IGJlc2No5GRpZ3QuIEtvcGllcmVuIHNpZSBkaWUgdXJzcHL8bmdsaWNoZSBEYXRlaSBNSURJTUFQLkNGRyBpbmQgZGFzIFdpbmRvd3MgLSBTeXN0ZW12ZXJ6ZWljaG5pcyB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgoKLyogTUNJIGVycm9ycyAqLwpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfSUQsIAkiVW5n/Gx0aWdlIE1DSSAtIEdlcuR0ZWtlbm51bmcuIEJlbnV0emVuIFNpZSBkaWUgenVy/GNrZ2VnZWJlbmUgSUQsIHdlbm4gU2llIGRhcyBNQ0kgLSBHZXLkdCD2ZmZuZW4uIgpNQ0lFUlJfVU5SRUNPR05JWkVEX0tFWVdPUkQsIAkiRGVyIFRyZWliZXIga2FubiBkZW4gYW5nZWdlYmVuZW4gQmVmZWhsc3BhcmFtZXRlciBuaWNodCBhbmVya2VubmVuLiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9DT01NQU5ELAkiRGVyIFRyZWliZXIga2FubiBkZW4gYW5nZWdlYmVuZW4gQmVmZWhsIG5pY2h0IGFuZXJrZW5uZW4uIgpNQ0lFUlJfSEFSRFdBUkUsIAkJIkVzIGdpYnQgZWluIFByb2JsZW0gbWl0IElocmVtIE1lZGlhIC0gR2Vy5HQuIFN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBlcyByaWNodGlnIGFyYmVpdGV0IG9kZXIgZnJhZ2VuIFNpZSBkZW4gR2Vy5HRlaGVyc3RlbGxlci4iCk1DSUVSUl9JTlZBTElEX0RFVklDRV9OQU1FLCAJIkRhcyBhbmdlZ2ViZW5lIEdlcuR0IGlzdCBuaWNodCBnZfZmZm5ldCBvZGVyIHdpcmQgdm9tIE1DSSBuaWNodCBlcmthbm50LiIKTUNJRVJSX09VVF9PRl9NRU1PUlksIAkJIk5pY2h0IGdlbvxnZW5kIFNwZWljaGVyIGb8ciBkZW4gYW5nZWZvcmRlcnRlbiBWb3JnYW5nLiBcbkJlZW5kZW4gU2llIGVpbmUgb2RlciBtZWhyZXJlIEFud2VuZHVuZ2VuLCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNQ0lFUlJfREVWSUNFX09QRU4sIAkJIkRlciBHZXLkdGVuYW1lIHdpcmQgdm9uIGRpZXNlciBBbndlbmR1bmcgYmVyZWl0cyBhbHMgQWxpYXMgYmVudXR6dC4gQmVudXR6ZW4gU2llIGVpbmVuIGVpbmRldXRpZ2VuIEFsaWFzIgpNQ0lFUlJfQ0FOTk9UX0xPQURfRFJJVkVSLCAJIkVzIGdpYnQgZWluIHVuYmVrYW5udGVzIFByb2JsZW0gYmVpbSBMYWRlbiBkZXMgYW5nZWdlYmVuZW4gR2Vy5HRldHJlaWJlcnMuIgpNQ0lFUlJfTUlTU0lOR19DT01NQU5EX1NUUklORywgIktlaW4gQmVmZWhsIHd1cmRlIGFuZ2VnZWJlbi4iCk1DSUVSUl9QQVJBTV9PVkVSRkxPVywgCSJEaWUgQXVzZ2FiZXplaWNoZW5rZXR0ZSB3YXIgenUgbGFuZyBm/HIgZGVuIFL8Y2tnYWJlcHVmZmVyLiBFcmj2aGVuIFNpZSBkaWUgUHVmZmVyZ3L232UuIgpNQ0lFUlJfTUlTU0lOR19TVFJJTkdfQVJHVU1FTlQsICJEZXIgQmVmZWhsIGVyZm9yZGVydCBlaW5lbiBaZWljaGVua2V0dGVucGFyYW1ldGVyLiBCaXR0ZSBzdGVsbGVuIFNpZSBlaW5lbiBiZXJlaXQuIgpNQ0lFUlJfQkFEX0lOVEVHRVIsIAkJIkRpZSBBbmdhYmUgZWluZXIgZ2FuemVuIFphaGwgaXN0IGb8ciBkaWVzZW4gQmVmZWhsIHVuZ/xsdGlnLiIKTUNJRVJSX1BBUlNFUl9JTlRFUk5BTCwgCSJEZXIgR2Vy5HRldHJlaWJlciBoYXQgZWluZW4gdW5n/Gx0aWdlbiBS/GNrZ2FiZXdlcnQgZ2VsaWVmZXJ0LiBGcmFnZW4gU2llIGRlbiBHZXLkdGVoZXJzdGVsbGVyIG5hY2ggZWluZW0gbmV1ZW4gVHJlaWJlci4iCk1DSUVSUl9EUklWRVJfSU5URVJOQUwsIAkiRWluIFRyZWliZXJmZWhsZXIgaXN0IGF1ZmdldHJldGVuLiBGcmFnZW4gU2llIGRlbiBHZXLkdGVoZXJzdGVsbGVyIG5hY2ggZWluZW0gbmV1ZW4gVHJlaWJlci4iCk1DSUVSUl9NSVNTSU5HX1BBUkFNRVRFUiwgCSJEZXIgYW5nZWdlYmVuZSBCZWZlaGwgZXJmb3JkZXJ0IGVpbmVuIFBhcmFtZXRlci4gQml0dGUgZ2ViZW4gU2llIGVpbmVuIGFuLiIKTUNJRVJSX1VOU1VQUE9SVEVEX0ZVTkNUSU9OLCAJIkRhcyB2ZXJ3ZW5kZXRlIE1DSSAtIEdlcuR0IHVudGVyc3T8dHp0IGRpZXNlbiBCZWZlaGwgbmljaHQuIgpNQ0lFUlJfRklMRV9OT1RfRk9VTkQsIAkiRGllIGFuZ2Vmb3JkZXJ0ZSBEYXRlaSB3dXJkZSBuaWNodCBnZWZ1bmRlbi4gU3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIFBmYWQtIHVuZCBEYXRlaW5hbWUgcmljaHRpZyBzaW5kLiIKTUNJRVJSX0RFVklDRV9OT1RfUkVBRFksIAkiRGVyIEdlcuR0ZXRyZWliZXIgaXN0IG5pY2h0IGJlcmVpdC4iCk1DSUVSUl9JTlRFUk5BTCwgCQkiRWluIEZlaGxlciBlcmVpZ25ldGUgc2ljaCBiZWltIFN0YXJ0ZW4gdm9uIE1DSS4gVmVyc3VjaGUgV2luZG93cyBuZXUgenUgc3RhcnRlbi4iCk1DSUVSUl9EUklWRVIsIAkJIkVzIGdpYnQgZWluIFByb2JsZW0gbWl0IGRlbSBHZXLkdGV0cmVpYmVyLiBEZXIgVHJlaWJlciB3aXJkIGdlc2NobG9zc2VuLiBFaW4gRmVobGVyIGthbm4gbmljaHQgZ2VtZWxkZXQgd2VyZGVuLiIKTUNJRVJSX0NBTk5PVF9VU0VfQUxMLCAJIkRlciBHZXLkdGVuYW1lICdhbGwnIGlzdCBuaWNodCBpbiBkaWVzZW0gQmVmZWhsIGVybGF1YnQuIgpNQ0lFUlJfTVVMVElQTEUsIAkJIkVzIHRyYXRlbiBGZWhsZXIgaW4gbWVociBhbHMgZWluZW0gR2Vy5HQgYXVmLiBHZWJlbiBTaWUgamVkZW4gQmVmZWhsIGb8ciBqZWRlcyBHZXLkdCBlaW56ZWxuIGFuLCB1bSB6dSBiZXN0aW1tZW4sIHdlbGNoZXMgR2Vy5HQgZGllIEZlaGxlciB2ZXJ1cnNhY2h0ZS4iCk1DSUVSUl9FWFRFTlNJT05fTk9UX0ZPVU5ELCAJIkthbm4ga2VpbmVuIEdlcuR0ZXR5cCBhdXMgZGVyIGFuZ2VnZWJlbmVuIERhdGVpbmFtZW5lcndlaXRlcnVuZyBlcm1pdHRlbG4uIgpNQ0lFUlJfT1VUT0ZSQU5HRSwgCQkiRGVyIGFuZ2VnZWJlbmUgUGFyYW1ldGVyIGxpZWd0IGF132VyaGFsYiBkZXMgenVs5HNzaWdlbiBCZXJlaWNocyBm/HIgZGllc2VuIEJlZmVobC4iCk1DSUVSUl9GTEFHU19OT1RfQ09NUEFUSUJMRSwgCSJEaWUgUGFyYW1ldGVyIGv2bm5lbiBuaWNodCB6dXNhbW1lbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKTUNJRVJSX0ZJTEVfTk9UX1NBVkVELCAJIkRpZSBEYXRlaSBrYW5uIG5pY2h0IGdlc3BlaWNoZXJ0IHdlcmRlbi4gU3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGdlbvxnZW5kIFBsYXR6IGF1ZiBkZW0gRGF0ZW50cuRnZXIgdmVyZvxnYmFyIGlzdCBvZGVyIElocmUgTmV0endlcmt2ZXJiaW5kdW5nIG5vY2ggYmVzdGVodC4iCk1DSUVSUl9ERVZJQ0VfVFlQRV9SRVFVSVJFRCwgCSJEYXMgYW5nZWdlYmVuZSBHZXLkdCB3dXJkZSBuaWNodCBnZWZ1bmRlbi4gU3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGVzIGluc3RhbGxpZXJ0IGlzdCBvZGVyIGRlciBHZXLkdGVuYW1lIHJpY2h0aWcgZ2VzY2hyaWViZW4gaXN0LiIKTUNJRVJSX0RFVklDRV9MT0NLRUQsIAkJIkRhcyBhbmdlZ2ViZW5lIEdlcuR0IHdpcmQgZ2VzY2hsb3NzZW4uIFdhcnRlbiBTaWUgZWluaWdlIFNla3VuZGVuLCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNQ0lFUlJfRFVQTElDQVRFX0FMSUFTLCAJIkRlciBhbmdlZ2ViZW5lIEFsaWFzIHdpcmQgdm9uIGRpZXNlciBBbndlbmR1bmcgYmVyZWl0cyB2ZXJ3ZW5kZXQuIFfkaGxlbiBTaWUgZWluZW4gZWluZGV1dGlnZW4gQWxpYXMuIgpNQ0lFUlJfQkFEX0NPTlNUQU5ULCAJCSJEZXIgYW5nZWdlYmVuZSBQYXJhbWV0ZXIgZvxyIGRpZXNlbiBCZWZlaGwgdW5n/Gx0aWcuIgpNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAJIkRhcyBHZXLkdCBpc3QgYmVyZWl0cyBnZfZmZm5ldC4gQmVudXR6ZW4gU2llIGRlbiAnc2hhcmVhYmxlJyAtIFBhcmFtZXRlciBiZWkgamVkZW0gJ29wZW4nIC0gQmVmZWhsLiIKTUNJRVJSX01JU1NJTkdfREVWSUNFX05BTUUsIAkiRGVyIGFuZ2VnZWJlbmUgQmVmZWhsIGVyZm9yZGVydCBlaW5lbiBBbGlhcy0sICBEYXRlaS0sIFRyZWliZXItIG9kZXIgR2Vy5HRlbmFtZW4uIEJpdHRlIGdlYmVuIFNpZSBlaW5lbiBhbi4iCk1DSUVSUl9CQURfVElNRV9GT1JNQVQsIAkiRGVyIGFuZ2VnZWJlbmUgV2VydCBm/HIgZGFzIFplaXRmb3JtYXQgaXN0IHVuZ/xsdGlnLiBMZXNlbiBTaWUgaW4gZGVyIE1DSSAtIERva3VtZW50YXRpb24gbmFjaCBn/Gx0aWdlbiBGb3JtYXRlbiBuYWNoLiIKTUNJRVJSX05PX0NMT1NJTkdfUVVPVEUsIAkiRWluIGFic2NobGll32VuZGVzIEFuZvxocnVuZ3N6ZWljaGVuIGZlaGx0IGltIFBhcmFtZXRlci4gQml0dGUgZ2ViZW4gU2llIGVpbnMgYW4uIgpNQ0lFUlJfRFVQTElDQVRFX0ZMQUdTLCAJIkVpbiBQYXJhbWV0ZXIgb2RlciBXZXJ0IHd1cmRlIHp3ZWltYWwgYW5nZWdlYmVuLiBHZWJlbiBTaWUgaW4gbnVyIGVpbnplbG4gYW4uIgpNQ0lFUlJfSU5WQUxJRF9GSUxFLCAJCSJEaWUgYW5nZWdlYmVuZSBEYXRlaSBrYW5uIGF1ZiBkZW0gTUNJIC0gR2Vy5HQgbmljaHQgd2llZGVyZ2VnZWJlbiB3ZXJkZW4uIERpZSBEYXRlaSBpc3Qgd2FocnNjaGVpbmxpY2ggYmVzY2jkZGlndCBvZGVyIGluIGVpbmVtIHVuZ/xsdGlnZW4gRm9ybWF0LiIKTUNJRVJSX05VTExfUEFSQU1FVEVSX0JMT0NLLCAJIkRlciBQYXJhbWV0ZXJibG9jaywgZGVyIHp1IE1DSSD8YmVyZ2ViZW4gd3VyZGUsIHdhciBOVUxMLiIKTUNJRVJSX1VOTkFNRURfUkVTT1VSQ0UsIAkiRXMga2FubiBrZWluZSB1bmJlbmFubnRlIERhdGVpIGdlc3BlaWNoZXJ0IHdlcmRlbi4gR2ViZW4gU2llIGVpbmVuIERhdGVpbmFtZW4gYW4uIgpNQ0lFUlJfTkVXX1JFUVVJUkVTX0FMSUFTLCAJIlNpZSBt/HNzZW4gZWluZW4gQWxpYXMgbWl0IGRlbSAnbmV3JyAtIFBhcmFtZXRlciBhbmdlYmVuLiIKTUNJRVJSX05PVElGWV9PTl9BVVRPX09QRU4sIAkiRGFzICdub3RpZnknIEZsYWcgaXN0IHVuenVs5HNzaWcgZvxyIHNlbGJzdPZmZm5lbmRlIEdlcuR0ZS4iCk1DSUVSUl9OT19FTEVNRU5UX0FMTE9XRUQsIAkiRWluIERhdGVpbmFtZSBrYW5uIG1pdCBkaWVzZW0gR2Vy5HQgbmljaHQgdmVyd2VuZGV0IHdlcmRlbi4iCk1DSUVSUl9OT05BUFBMSUNBQkxFX0ZVTkNUSU9OLCAiRGllIEJlZmVobGUgc2luZCBpbiBkZXIgYW5nZWdlYmVuZW4gUmVpaGVuZm9sZ2UgbmljaHQgYXVzZvxocmJhci4gxG5kZXJuIFNpZSBkaWUgUmVpaGVuZm9sZ2UsIHVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4iCk1DSUVSUl9JTExFR0FMX0ZPUl9BVVRPX09QRU4sIAkiRGVyIEJlZmVobCBrYW5uIG5pY2h0IGF1ZiBlaW4gc2VsYnN09mZmbmVkZXMgR2Vy5HQgYW5nZXdhbmR0IHdlcmRlbi4gV2FydGVuIFNpZSwgYmlzIGRhcyBHZXLkdCBnZXNjaGxvc3NlbiB3dXJkZSB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNQ0lFUlJfRklMRU5BTUVfUkVRVUlSRUQsIAkiRGVyIERhdGVpbmFtZSBpc3QgdW5n/Gx0aWcuIERlciBEYXRlaW5hbWUgbXVzcyBhdXMgbWF4aW1hbCA4IFplaWNoZW4sIGdlZm9sZ3Qgdm9uIGVpbmVtIFB1bmt0IHVuZCBlaW5lciBEYXRlaW5hbWVuZXJ3ZWl0ZXJ1bmcgYmVzdGVoZW4uIgpNQ0lFUlJfRVhUUkFfQ0hBUkFDVEVSUywgCSJadXPkdHpsaWNoZSBaZWljaGVuIG5hY2ggZWluZXIgWmVpY2hlbmtldHRlIG1pdCBBbmb8aHJ1bmdzemVpY2hlbiBzaW5kIG5pY2h0IGVybGF1YnQuIgpNQ0lFUlJfREVWSUNFX05PVF9JTlNUQUxMRUQsIAkiRGFzIGFuZ2VnZWJlbmUgR2Vy5HQgaXN0IG5pY2h0IGF1ZiBJaHJlbiBTeXN0ZW0gaW5zdGFsbGllcnQuIEJlbnV0emVuIFNpZSBkaWUgSGFyZHdhcmVlcmtlbm51bmcgaW4gZGVyIFN5c3RlbXN0ZXVlcnVuZywgdW0gZGFzIEdlcuR0IHp1IGluc3RhbGxpZXJlbi4iCk1DSUVSUl9HRVRfQ0QsIAkJIkF1ZiBkaWUgYW5nZWdlYmVuZSBEYXRlaSBvZGVyIGRhcyBNQ0kgLSBHZXLkdCBrYW5uIG5pY2h0IHp1Z2VncmlmZmVuIHdlcmRlbi4gVmVyc3VjaGVuIFNpZSwgZGFzIFZlcnplaWNobmlzIHp1IHdlY2hzZWxuIG9kZXIgZGFzIFN5c3RlbSBuZXUgenUgc3RhcnRlbi4iCk1DSUVSUl9TRVRfQ0QsIAkJIkF1ZiBkaWUgYW5nZWdlYmVuZSBEYXRlaSBvZGVyIGRhcyBNQ0kgLSBHZXLkdCBrYW5uIG5pY2h0IHp1Z2VncmlmZmVuIHdlcmRlbiwgd2VpbCBkaWUgQW53ZW5kdW5nIG5pY2h0IGRhcyBWZXJ6ZWljaG5pcyB3ZWNoc2VsbiBrYW5uLiIKTUNJRVJSX1NFVF9EUklWRSwgCQkiQXVmIGRpZSBhbmdlZ2ViZW5lIERhdGVpIG9kZXIgZGFzIE1DSSAtIEdlcuR0IGthbm4gbmljaHQgenVnZWdyaWZmZW4gd2VyZGVuLCB3ZWlsIGRpZSBBbndlbmR1bmcgbmljaHQgZGFzIExhdWZ3ZXJrIHdlY2hzZWxuIGthbm4uIgpNQ0lFUlJfREVWSUNFX0xFTkdUSCwgCQkiR2ViZW4gU2llIGVpbmVuIEdlcuR0ZS0gb2RlciBUcmVpYmVybmFtZW4gbWl0IHdlbmlnZXIgYWxzIDc5IFplaWNoZW4gYW4uIgpNQ0lFUlJfREVWSUNFX09SRF9MRU5HVEgsIAkiR2ViZW4gU2llIGVpbmVuIEdlcuR0ZS0gb2RlciBUcmVpYmVybmFtZW4gbWl0IHdlbmlnZXIgYWxzIDY5IFplaWNoZW4gYW4uIgpNQ0lFUlJfTk9fSU5URUdFUiwgCQkiRGVyIGFuZ2VnZWJlbmUgQmVmZWhsIGVyZm9yZGVydCBlaW5lbiBnYW56emFobGlnZW4gUGFyYW1ldGVyLiBCaXR0ZSBnZWJlbiBTaWUgZWluZW4gYW4uIgpNQ0lFUlJfV0FWRV9PVVRQVVRTSU5VU0UsIAkiQWxsZSBXYXZlZm9ybWdlcuR0ZSwgZGllIGRpZXNlIERhdGVpZW4gaW4gZGVtIGdlZ2Vud+RydGlnZW4gRm9ybWF0IHdpZWRlcmdlYmVuIGv2bm50ZW4sIHNpbmQgaW4gQmVudXR6dW5nLiBXYXJ0ZW4gU2llLCBiaXMgZWluIFdhdmVmb3JtZ2Vy5HQgZnJlaSBpc3QsIHVuZCB3aWVkZXJob2xlbiBTaWUgZGVuIFZvcmdhbmcuIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRJTlVTRSwgCSJEYXMgZ2VnZW535HJ0aWdlIFdhdmVmb3JtZ2Vy5HQga2FubiBuaWNodCB3aWVkZXJnZWJlbiwgd2VpbCBlcyBnZXJhZGUgYmVudXR6dCB3aXJkLiBXYXJ0ZW4gU2llLCBiaXMgZGFzIEdlcuR0IGZyZWkgaXN0LCB1bmQgd2llZGVyaG9sZW4gU2llIGRlbiBWb3JnYW5nLiIKTUNJRVJSX1dBVkVfSU5QVVRTSU5VU0UsIAkiRXMgaXN0IGtlaW4gV2F2ZWZvcm1nZXLkdCBmcmVpLCBkYXMgZGFzIGdlZ2Vud+RydGlnZSBGb3JtYXQgYXVmemVpY2huZW4ga/ZubnRlLiBXYXJ0ZW4gU2llLCBiaXMgZWluIFdhdmVmb3JtZ2Vy5HQgZnJlaSBpc3QsIHVuZCB3aWVkZXJob2xlbiBTaWUgZGVuIFZvcmdhbmcuIgpNQ0lFUlJfV0FWRV9TRVRJTlBVVElOVVNFLCAJIkRhcyBnZWdlbnfkcnRpZ2UgV2F2ZWZvcm1nZXLkdCBrYW5uIG5pY2h0IGF1ZnplaWNobmVuLCB3ZWlsIGVzIGdlcmFkZSB2ZXJ3ZW5kZXQgd2lyZC4gV2FydGVuIFNpZSwgYmlzIGRhcyBHZXLkdCBmcmVpIGlzdCwgdW5kIHdpZWRlcmhvbGVuIFNpZSBkZW4gVm9yZ2FuZy4iCk1DSUVSUl9XQVZFX09VVFBVVFVOU1BFQ0lGSUVELAkiSmVkZXMga29tcGF0aWJsZSBXYXZlZm9ybSAtIFdpZWRlcmdhYmVnZXLkdCBrYW5uIHZlcndlbmRldCB3ZXJkZW4uIgpNQ0lFUlJfV0FWRV9JTlBVVFVOU1BFQ0lGSUVELCAJIkplZGVzIGtvbXBhdGlibGUgV2F2ZWZvcm0gLSBBdWZuYWhtZWdlcuR0IGthbm4gdmVyd2VuZGV0IHdlcmRlbi4iCk1DSUVSUl9XQVZFX09VVFBVVFNVTlNVSVRBQkxFLCAiRXMgaXN0IGtlaW4gV2F2ZWZvcm1nZXLkdCBpbnN0YWxsaWVydCwgZGFzIERhdGVpZW4gaW0gYWt0dWVsbGVuIEZvcm1hdCB3aWVkZXJnZWJlbiBrYW5uLiBCZW51dHplbiBTaWUgZGllIEhhcmR3YXJlZXJrZW5udW5nIGluIGRlciBTeXN0ZW1zdGV1ZXJ1bmcsIHVtIGVpbiBXYXZlZm9ybWdlcuR0IHp1IGluc3RhbGxpZXJlbi4iCk1DSUVSUl9XQVZFX1NFVE9VVFBVVFVOU1VJVEFCTEUsIkRhcyBXaWVkZXJnYWJlZ2Vy5HQgZXJrZW5udCBkYXMgZ2VnZW535HJ0aWdlIERhdGVpZm9ybWF0IG5pY2h0LiIKTUNJRVJSX1dBVkVfSU5QVVRTVU5TVUlUQUJMRSwgCSJFcyBpc3Qga2VpbiBXYXZlZm9ybWdlcuR0IGluc3RhbGxpZXJ0LCBkYXMgRGF0ZWllbiBpbSBha3R1ZWxsZW4gRm9ybWF0IGF1Zm5laG1lbiBrYW5uLiBCZW51dHplbiBTaWUgZGllIEhhcmR3YXJlZXJrZW5udW5nIGluIGRlciBTeXN0ZW1zdGV1ZXJ1bmcsIHVtIGVpbiBXYXZlZm9ybWdlcuR0IHp1IGluc3RhbGxpZXJlbi4iCk1DSUVSUl9XQVZFX1NFVElOUFVUVU5TVUlUQUJMRSwgIkRhcyBHZXLkdCwgbWl0IGRlbSBTaWUgYXVmemVpY2huZW4gbfZjaHRlbiwgZXJrZW5udCBkYXMgZ2VnZW535HJ0aWdlIERhdGVpZm9ybWF0IG5pY2h0LiIKTUNJRVJSX05PX1dJTkRPVywgCQkiRXMgZ2lidCBrZWluIEFuemVpZ2VmZW5zdGVyLiIKTUNJRVJSX0NSRUFURVdJTkRPVywgCQkiRmVuc3RlciBrb25udGUgbmljaHQgZXJ6ZXVndCBvZGVyIHZlcndlbmRldCB3ZXJkZW4uIgpNQ0lFUlJfRklMRV9SRUFELCAJCSJEaWUgRGF0ZWkga29ubnRlIG5pY2h0IGdlbGVzZW4gd2VyZGVuLiBTdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIERhdGVpIGV4aXN0aWVydCBvZGVyIElocmUgTmV0endlcmt2ZXJiaW5kdW5nIG5vY2ggYmVzdGVodC4iCk1DSUVSUl9GSUxFX1dSSVRFLCAJCSJEaWUgRGF0ZWkga29ubnRlIG5pY2h0IGdlc2NocmllYmVuIHdlcmRlbi4gU3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGdlbvxnZW5kIFBsYXR6IGF1ZiBkZW0gRGF0ZW50cuRnZXIgdmVyZvxnYmFyIGlzdCwgb2RlciBkYXNzIGRpZSBOZXR6d2Vya3ZlcmJpbmR1bmcgbm9jaCBiZXN0ZWh0LiIKTUNJRVJSX1NFUV9ESVZfSU5DT01QQVRJQkxFLCAJIkRpZSBaZWl0Zm9ybWF0ZSB2b24gIiJzb25nIHBvaW50ZXIiIiB1bmQgU01QVEUgc2NobGllc3NlbiBzaWNoIGdlZ2Vuc2VpdGlnIGF1cy4gU2llIGv2bm5lbiBzaWUgbmljaHQgenVzYW1tZW4gdmVyd2VuZGVuLiIKTUNJRVJSX1NFUV9OT01JRElQUkVTRU5ULCAJIkVzIHNpbmQga2VpbmUgTUlESSAtIEdlcuR0ZSBhdWYgZGVtIFN5c3RlbSBpbnN0YWxsaWVydC4gQmVudXR6ZW4gU2llIGRpZSBIYXJkd2FyZWVya2VubnVuZyBpbiBkZXIgU3lzdGVtc3RldWVydW5nLCB1bSBlaW5lbiBNSURJIC0gVHJlaWJlciB6dSBpbnN0YWxsaWVyZW4uIgpNQ0lFUlJfU0VRX1BPUlRfSU5VU0UsIAkiRGVyIGFuZ2VnZWJlbmUgTUlESSAtIEFuc2NobHVzcyB3aXJkIGJlcmVpdHMgdmVyd2VuZGV0LiBXYXJ0ZW4gU2llIGJpcyBkZXIgQW5zY2hsdXNzIGZyZWkgaXN0LCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNQ0lFUlJfU0VRX1BPUlRfTUFQTk9ERVZJQ0UsIAkiRGFzIGdlZ2Vud+RydGlnZSBNSURJIC0gTWFwcGVyIFNldHVwIGJlbnV0enQgZWluIE1JREkgLSBHZXLkdCwgZGFzcyBuaWNodCBhdWYgSWhyZW4gU3lzdGVtIGluc3RhbGxpZXJ0IGlzdC4gQmVudXR6ZW4gU2llIGRlbiBNSURJIC0gTWFwcGVyIGluIGRlciBTeXN0ZW1zdGV1ZXJ1bmcsIHVtIGRhcyBTZXR1cCB6dSDkbmRlcm4uIgpNQ0lFUlJfU0VRX1BPUlRfTUlTQ0VSUk9SLCAJIkJlaW0gQmVudXR6ZW4gZGVzIGFuZ2VnZWJlbmVuIEFuc2NobHVzc2VzIHRyYXQgZWluIEZlaGxlciBhdWYuIgpNQ0lFUlJfU0VRX1BPUlRfTk9ORVhJU1RFTlQsIAkiRXMgc2luZCBrZWluZSBhbmdlZ2VibmVuIE1JREkgLSBHZXLkdGUgYXVmIGRlbSBTeXN0ZW0gaW5zdGFsbGllcnQuIEJlbnV0emVuIFNpZSBkaWUgSGFyZHdhcmVlcmtlbm51bmcgaW4gZGVyIFN5c3RlbXN0ZXVlcnVuZywgdW0gZWluIE1JREkgLSBHZXLkdCB6dSBpbnN0YWxsaWVyZW4uIgpNQ0lFUlJfU0VRX1BPUlRVTlNQRUNJRklFRCwgCSJFcyBnaWJ0IGtlaW5lbiBha3R1ZWxsZW4gTUlESSAtIEFuc2NobHVzcyBhdWYgZGVtIFN5c3RlbS4iCk1DSUVSUl9TRVFfVElNRVIsIAkJIkFsbGUgTXVsdGltZWRpYXplaXRnZWJlciB3ZXJkZW4gdm9uIGFuZGVyZW4gQW53ZW5kdW5nZW4gdmVyd2VuZGV0LiBCZWVuZGVuIFNpZSBlaW5lIGRpZXNlciBBbndlbmR1bmdlbiwgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKCkVORAo=