LyoKICogQ29weXJpZ2h0IDIwMDQgSGVubmluZyBHZXJoYXJkdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpTVFJJTkdUQUJMRSBMQU5HVUFHRSBMQU5HX0dFUk1BTiwgU1VCTEFOR19ERUZBVUxUCkJFR0lOCgovKiBNTVNZUyBlcnJvcnMgKi8KTU1TWVNFUlJfTk9FUlJPUiwgCQkiRGVyIGFuZ2Vmb3JkZXJ0ZSBCZWZlaGwgd3VyZGUgYXVzZ2Vm/GhydC4iCk1NU1lTRVJSX0VSUk9SLCAJCSJVbmJla2FubnRlciBleHRlcm5lciBGZWhsZXIuIgpNTVNZU0VSUl9CQURERVZJQ0VJRCwgCQkiRGllIGRlcnplaXQgdmVyd2VuZGV0ZSBHZXLkdGVrZW5udW5nIGlzdCBhdd9lcmhhbGIgZGVzIHp1bORzc2lnZW4gQmVyZWljaHMgZvxyIElociBTeXN0ZW0uIgpNTVNZU0VSUl9OT1RFTkFCTEVELCAJCSJEZXIgVHJlaWJlciBrb25udGUgbmljaHQgZ2VzdGFydGV0IHdlcmRlbi4iCk1NU1lTRVJSX0FMTE9DQVRFRCwgCQkiRGFzIEdlcuR0IHdpcmQgYmVyZWl0cyB2ZXJ3ZW5kZXQuIFdhcnRlbiBTaWUsIGJpcyBlcyBmcmVpZ2VnZWJlbiBpc3QsIHVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4iCk1NU1lTRVJSX0lOVkFMSEFORExFLCAJCSJEYXMgYW5nZWdlYmVuZGUgR2Vy5HRlaGFuZGxlIGlzdCB1bmf8bHRpZy4iCk1NU1lTRVJSX05PRFJJVkVSLCAJCSJFcyBpc3Qga2VpbiBUcmVpYmVyIGF1ZiBJaHJlbSBTeXN0ZW0gaW5zdGFsbGllcnQgIVxuIgpNTVNZU0VSUl9OT01FTSwgCQkiTmljaHQgZ2Vu/GdlbmQgU3BlaWNoZXIgZvxyIGRpZXNlbiBCZWZlaGwuIEJlZW5kZW4gU2llIGVpbmUgb2RlciBtZWhyZXJlIEFud2VuZHVuZ2VuLCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNTVNZU0VSUl9OT1RTVVBQT1JURUQsCQkiRGllc2UgRnVua3Rpb24gd2lyZCBuaWNodCB1bnRlcnN0/HR6dC4gQmVudXR6ZW4gU2llIGRpZSBGdW5rdGlvbiAnQ2FwYWJpbGl0aWVzJywgdW0genUgZXJtaXR0ZWxuLCB3ZWxjaGUgRnVua3Rpb24gZGllc2VyIFRyZWliZXIgdW50ZXJzdPx0enQuIgpNTVNZU0VSUl9CQURFUlJOVU0sIAkJIkRpZSBhbmdlZ2ViZW5lIEZlaGxlcm51bW1lciBpc3QgZvxyIGRpZXNlcyBTeXN0ZW0gbmljaHQgZGVmaW5pZXJ0LiIKTU1TWVNFUlJfSU5WQUxGTEFHLCAJCSJFaW4gdW5n/Gx0aWdlcyBGbGFnIHd1cmRlIGFuIGVpbmUgU3lzdGVtZnVua3Rpb24g/GJlcmdlYmVuLiIKTU1TWVNFUlJfSU5WQUxQQVJBTSwgCQkiRWluIHVuZ/xsdGlnZXIgUGFyYW1ldGVyIHd1cmRlIGFuIGVpbmUgU3lzdGVtZnVua3Rpb24g/GJlcmdlYmVuLiIKCi8qIFdBVkUgZXJyb3JzICovCldBVkVSUl9CQURGT1JNQVQsIAkJIkRpZXNlcyBGb3JtYXQgd2lyZCBuaWNodCB1bnRlcnN0/HR6dCBvZGVyIGthbm4gbmljaHQg/GJlcnNldHp0IHdlcmRlbi4gQmVudXR6ZW4gU2llIGRpZSBGdW5rdGlvbiAnQ2FwYWJpbGl0aWVzJywgdW0gZGllIHVudGVyc3T8dHp0ZW4gRm9ybWF0ZSB6dSBlcm1pdHRlbG4uIgpXQVZFUlJfU1RJTExQTEFZSU5HLCAJCSJEaWUgRnVua3Rpb24ga2FubiBuaWNodCBkdXJjaGdlZvxocnQgd2VyZGVuLCB3ZW5uIG5vY2ggTWVkaWVuZGF0ZWllbiB3aWVkZXJnZWdlYmVuIHdlcmRlbi4gU3RhcnRlbiBTaWUgZGFzIEdlcuR0IG5ldSwgb2RlciB3YXJ0ZW4gU2llIGJpcyBrZWluZSBEYXRlbiBtZWhyIHdpZWRlcmdlZ2ViZW4gd2VyZGVuLiIKV0FWRVJSX1VOUFJFUEFSRUQsIAkJIkRlciBXQVZFIC0gSGVhZGVyIHd1cmRlIG5pY2h0IHZvcmJlcmVpdGV0LiBCZW51dHplbiBTaWUgZGllIEZ1bmt0aW9uICdQcmVwYXJlJyB6dW0gVm9yYmVyZWl0ZW4gZGVzIEhlYWRlcnMgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKV0FWRVJSX1NZTkMsIAkJCSJEYXMgR2Vy5HQga2FubiBuaWNodCBvaG5lIGRhcyBXQVZFX0FMTE9XU1lOQyAtIEZsYWcgZ2X2ZmZuZXQgd2VyZGVuLiBCZW51dHplbiBTaWUgZGllc2VzIEZsYWcgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKCi8qIE1JREkgZXJyb3JzICovCk1JRElFUlJfVU5QUkVQQVJFRCwgCQkiRGVyIE1JREkgLSBIZWFkZXIgd3VyZGUgbmljaHQgdm9yYmVyZWl0ZXQuIEJlbnV0emVuIFNpZSBkaWUgRnVua3Rpb24gJ1ByZXBhcmUnIHp1bSBWb3JiZXJlaXRlbiBkZXMgSGVhZGVycyB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNSURJRVJSX1NUSUxMUExBWUlORywgCQkiRGllIEZ1bmt0aW9uIGthbm4gbmljaHQgZHVyY2hnZWb8aHJ0IHdlcmRlbiwgd2VubiBub2NoIE1lZGllbmRhdGVpZW4gd2llZGVyZ2VnZWJlbiB3ZXJkZW4uIFN0YXJ0ZW4gU2llIGRhcyBHZXLkdCBuZXUsIG9kZXIgd2FydGVuIFNpZSBiaXMga2VpbmUgRGF0ZW4gbWVociB3aWVkZXJnZWdlYmVuIHdlcmRlbi4iCk1JRElFUlJfTk9NQVAsIAkJIkVzIHd1cmRlIGtlaW5lIE1JREkgLSBNYXAgZ2VmdW5kZW4uIEVzIGv2bm50ZSBlaW4gUHJvYmxlbSBtaXQgZGVtIFRyZWliZXIgZ2ViZW4gb2RlciBkaWUgRGF0ZWkgTUlESU1BUC5DRkcgZmVobHQgb2RlciBpc3QgYmVzY2jkZGlndC4iCk1JRElFUlJfTk9UUkVBRFksIAkJIkRlciBBbnNjaGx1c3MgaXN0IG1pdCBkZXIgRGF0ZW5hdXNnYWJlIGJlbGVndC4gV2FydGVuIFNpZSwgYmlzIGRpZSBEYXRlbiD8YmVydHJhZ2VuIHd1cmRlbiB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNSURJRVJSX05PREVWSUNFLCAJCSJEYXMgZ2VnZW535HJ0aWdlIE1JREkgLSBNYXBwZXIgU2V0dXAgYmVudXR6dCBlaW4gTUlESSAtIEdlcuR0LCBkYXMgbmljaHQgaW5zdGFsbGllcnQgaXN0LiBCZW51dHplbiBTaWUgZGVuIE1JREkgLSBNYXBwZXIsIHVtIGRhcyBTZXR1cCB6dSDkbmRlcm4uIgpNSURJRVJSX0lOVkFMSURTRVRVUCwgCQkiRGFzIGFrdHVlbGxlIE1JREkgU2V0dXAgaXN0IGJlc2No5GRpZ3QuIEtvcGllcmVuIHNpZSBkaWUgdXJzcHL8bmdsaWNoZSBEYXRlaSBNSURJTUFQLkNGRyBpbmQgZGFzIFdpbmRvd3MgLSBTeXN0ZW12ZXJ6ZWljaG5pcyB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgoKLyogTUNJIGVycm9ycyAqLwpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfSUQsIAkiVW5n/Gx0aWdlIE1DSSAtIEdlcuR0ZWtlbm51bmcuIEJlbnV0emVuIFNpZSBkaWUgenVy/GNrZ2VnZWJlbmUgSUQsIHdlbm4gU2llIGRhcyBNQ0kgLSBHZXLkdCD2ZmZuZW4uIgpNQ0lFUlJfVU5SRUNPR05JWkVEX0tFWVdPUkQsIAkiRGVyIFRyZWliZXIga2FubiBkZW4gYW5nZWdlYmVuZW4gQmVmZWhsc3BhcmFtZXRlciBuaWNodCBhbmVya2VubmVuLiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9DT01NQU5ELAkiRGVyIFRyZWliZXIga2FubiBkZW4gYW5nZWdlYmVuZW4gQmVmZWhsIG5pY2h0IGFuZXJrZW5uZW4uIgpNQ0lFUlJfSEFSRFdBUkUsIAkJIkVzIGdpYnQgZWluIFByb2JsZW0gbWl0IElocmVtIE1lZGlhIC0gR2Vy5HQuIFN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBlcyByaWNodGlnIGFyYmVpdGV0IG9kZXIgZnJhZ2VuIFNpZSBkZW4gR2Vy5HRlaGVyc3RlbGxlci4iCk1DSUVSUl9JTlZBTElEX0RFVklDRV9OQU1FLCAJIkRhcyBhbmdlZ2ViZW5lIEdlcuR0IGlzdCBuaWNodCBnZfZmZm5ldCBvZGVyIHdpcmQgdm9tIE1DSSBuaWNodCBlcmthbm50LiIKTUNJRVJSX09VVF9PRl9NRU1PUlksIAkJIk5pY2h0IGdlbvxnZW5kIFNwZWljaGVyIGb8ciBkZW4gYW5nZWZvcmRlcnRlbiBWb3JnYW5nLiBcbkJlZW5kZW4gU2llIGVpbmUgb2RlciBtZWhyZXJlIEFud2VuZHVuZ2VuLCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNQ0lFUlJfREVWSUNFX09QRU4sIAkJIkRlciBHZXLkdGVuYW1lIHdpcmQgdm9uIGRpZXNlciBBbndlbmR1bmcgYmVyZWl0cyBhbHMgQWxpYXMgYmVudXR6dC4gQmVudXR6ZW4gU2llIGVpbmVuIGVpbmRldXRpZ2VuIEFsaWFzIgpNQ0lFUlJfQ0FOTk9UX0xPQURfRFJJVkVSLCAJIkVzIGdpYnQgZWluIHVuYmVrYW5udGVzIFByb2JsZW0gYmVpbSBMYWRlbiBkZXMgYW5nZWdlYmVuZW4gR2Vy5HRldHJlaWJlcnMuIgpNQ0lFUlJfTUlTU0lOR19DT01NQU5EX1NUUklORywgIktlaW4gQmVmZWhsIHd1cmRlIGFuZ2VnZWJlbi4iCk1DSUVSUl9QQVJBTV9PVkVSRkxPVywgCSJEaWUgQXVzZ2FiZXplaWNoZW5rZW5udGUgd2FyIHp1IGxhbmcgZvxyIGRlbiBS/GNrZ2FiZXB1ZmZlci4gRXJo9mhlbiBTaWUgZGllIFB1ZmZlcmdy9t9lLiIKTUNJRVJSX01JU1NJTkdfU1RSSU5HX0FSR1VNRU5ULCAiRGVyIEJlZmVobCBlcmZvcmRlcnQgZWluZW4gWmVpY2hlbmtldHRlbnBhcmFtZXRlci4gQml0dGUgc3RlbGxlbiBTaWUgZWluZW4gYmVyZWl0LiIKTUNJRVJSX0JBRF9JTlRFR0VSLCAJCSJEaWUgQW5nYWJlIGVpbmVyIGdhbnplbiBaYWhsIGlzdCBm/HIgZGllc2VuIEJlZmVobCB1bmf8bHRpZy4iCk1DSUVSUl9QQVJTRVJfSU5URVJOQUwsIAkiRGVyIEdlcuR0ZXRyZWliZXIgaGF0IGVpbmVuIHVuZ/xsdGlnZW4gUvxja2dhYmV3ZXJ0IGdlbGllZmVydC4gRnJhZ2VuIFNpZSBkZW4gR2Vy5HRlaGVyc3RlbGxlciBuYWNoIGVpbmVtIG5ldWVuIFRyZWliZXIuIgpNQ0lFUlJfRFJJVkVSX0lOVEVSTkFMLCAJIkVpbiBUcmVpYmVyZmVobGVyIGlzdCBhdWZnZXRyZXRlbi4gRnJhZ2VuIFNpZSBkZW4gR2Vy5HRlaGVyc3RlbGxlciBuYWNoIGVpbmVtIG5ldWVuIFRyZWliZXIuIgpNQ0lFUlJfTUlTU0lOR19QQVJBTUVURVIsIAkiRGVyIGFuZ2VnZWJlbmUgQmVmZWhsIGVyZm9yZGVydCBlaW5lbiBQYXJhbWV0ZXIuIEJpdHRlIGdlYmVuIFNpZSBlaW5lbiBhbi4iCk1DSUVSUl9VTlNVUFBPUlRFRF9GVU5DVElPTiwgCSJEYXMgdmVyd2VuZGV0ZSBNQ0kgLSBHZXLkdCB1bnRlcnN0/HR6dCBkaWVzZW4gQmVmZWhsIG5pY2h0LiIKTUNJRVJSX0ZJTEVfTk9UX0ZPVU5ELCAJIkRpZSBhbmdlZm9yZGVydGUgRGF0ZWkgd3VyZGUgbmljaHQgZ2VmdW5kZW4uIFN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBQZmFkLSB1bmQgRGF0ZWluYW1lIHJpY2h0aWcgc2luZC4iCk1DSUVSUl9ERVZJQ0VfTk9UX1JFQURZLCAJIkRlciBHZXLkdGV0cmVpYmVyIGlzdCBuaWNodCBiZXJlaXQuIgpNQ0lFUlJfSU5URVJOQUwsIAkJIkVpbiBGZWhsZXIgZXJlaWduZXRlIHNpY2ggYmVpbSBTdGFydGVuIHZvbiBNQ0kuIFZlcnN1Y2hlIFdpbmRvd3MgbmV1IHp1IHN0YXJ0ZW4uIgpNQ0lFUlJfRFJJVkVSLCAJCSJFcyBnaWJ0IGVpbiBQcm9ibGVtIG1pdCBkZW0gR2Vy5HRldHJlaWJlci4gRGVyIFRyZWliZXIgd2lyZCBnZXNjaGxvc3Nlbi4gRWluIEZlaGxlciBrYW5uIG5pY2h0IGdlbWVsZGV0IHdlcmRlbi4iCk1DSUVSUl9DQU5OT1RfVVNFX0FMTCwgCSJEZXIgR2Vy5HRlbmFtZSAnYWxsJyBpc3QgbmljaHQgaW4gZGllc2VtIEJlZmVobCBlcmxhdWJ0LiIKTUNJRVJSX01VTFRJUExFLCAJCSJFcyB0cmF0ZW4gRmVobGVyIGluIG1laHIgYWxzIGVpbmVtIEdlcuR0IGF1Zi4gR2ViZW4gU2llIGplZGVuIEJlZmVobCBm/HIgamVkZXMgR2Vy5HQgZWluemVsbiBhbiwgdW0genUgYmVzdGltbWVuLCB3ZWxjaGVzIEdlcuR0IGRpZSBGZWhsZXIgdmVydXJzYWNodGUuIgpNQ0lFUlJfRVhURU5TSU9OX05PVF9GT1VORCwgCSJLYW5uIGtlaW5lbiBHZXLkdGV0eXAgYXVzIGRlciBhbmdlZ2ViZW5lbiBEYXRlaW5hbWVuZXJ3ZWl0ZXJ1bmcgZXJtaXR0ZWxuLiIKTUNJRVJSX09VVE9GUkFOR0UsIAkJIkRlciBhbmdlZ2ViZW5lIFBhcmFtdGVyIGxpZWd0IGF132VyaGFsYiBkZXMgenVs5HNzaWdlbiBCZXJlaWNocyBm/HIgZGllc2VuIEJlZmVobC4iCk1DSUVSUl9GTEFHU19OT1RfQ09NUEFUSUJMRSwgCSJEaWUgUGFyYW10ZXIga/ZubmVuIG5pY2h0IHp1c2FtbWVuIHZlcndlbmRldCB3ZXJkZW4uIgpNQ0lFUlJfRklMRV9OT1RfU0FWRUQsIAkiRGllIERhdGVpIGthbm4gbmljaHQgZ2VzcGVpY2hlcnQgd2VyZGVuLiBTdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZ2Vu/GdlbmQgUGxhdHogYXVmIGRlbSBEYXRlbnRy5GdlciB2ZXJm/GdiYXIgaXN0IG9kZXIgSWhyZSBOZXR6d2Vya3ZlcmJpbmR1bmcgbm9jaCBiZXN0ZWh0LiIKTUNJRVJSX0RFVklDRV9UWVBFX1JFUVVJUkVELCAJIkRhcyBhbmdlZ2ViZW5lIEdlcuR0IHd1cmRlIG5pY2h0IGdlZnVuZGVuLiBTdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZXMgaW5zdGFsbGllcnQgaXN0IG9kZXIgZGVyIEdlcuR0ZW5hbWUgcmljaHRpZyBnZXNjaHJpZWJlbiBpc3QuIgpNQ0lFUlJfREVWSUNFX0xPQ0tFRCwgCQkiRGFzIGFuZ2VnZWJlbmUgR2Vy5HQgd2lyZCBnZXNjaGxvc3Nlbi4gV2FydGVuIFNpZSBlaW5pZ2UgU2VrdW5kZW4sIHVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4iCk1DSUVSUl9EVVBMSUNBVEVfQUxJQVMsIAkiRGVyIGFuZ2VnZWJlbmUgQWxpYXMgd2lyZCB2b24gZGllc2VyIEFud2VuZHVuZyBiZXJlaXRzIHZlcndlbmRldC4gV+RobGVuIFNpZSBlaW5lbiBlaW5kZXV0aWdlbiBBbGlhcy4iCk1DSUVSUl9CQURfQ09OU1RBTlQsIAkJIkRlciBhbmdlZ2ViZW5lIFBhcmFtZXRlciBm/HIgZGllc2VuIEJlZmVobCB1bmf8bHRpZy4iCk1DSUVSUl9NVVNUX1VTRV9TSEFSRUFCTEUsIAkiRGFzIEdlcuR0IGlzdCBiZXJlaXRzIGdl9mZmbmV0LiBCZW51dHplbiBTaWUgZGVuICdzaGFyZWFibGUnIC0gUGFyYW1ldGVyIGJlaSBqZWRlbSAnb3BlbicgLSBCZWZlaGwuIgpNQ0lFUlJfTUlTU0lOR19ERVZJQ0VfTkFNRSwgCSJEZXIgYW5nZWdlYmVuZSBCZWZlaGwgZXJmb3JkZXJ0IGVpbmVuIEFsaWFzLSwgIERhdGVpLSwgVHJlaWJlci0gb2RlciBHZXLkdGVuYW1lbi4gQml0dGUgZ2ViZW4gU2llIGVpbmVuIGFuLiIKTUNJRVJSX0JBRF9USU1FX0ZPUk1BVCwgCSJEZXIgYW5nZWdlYmVuZSBXZXJ0IGb8ciBkYXMgWmVpdGZvcm1hdCBpc3QgdW5n/Gx0aWcuIExlc2VuIFNpZSBpbiBkZXIgTUNJIC0gRG9rdW1lbnRhdGlvbiBuYWNoIGf8bHRpZ2VuIEZvcm1hdGVuIG5hY2guIgpNQ0lFUlJfTk9fQ0xPU0lOR19RVU9URSwgCSJFaW4gYWJzY2hsaWXfZW5kZXMgQW5m/GhydW5nc3plaWNoZW4gZmVobHQgaW0gUGFyYW1ldGVyLiBCaXR0ZSBnZWJlbiBTaWUgZWlucyBhbi4iCk1DSUVSUl9EVVBMSUNBVEVfRkxBR1MsIAkiRWluIFBhcmFtZXRlciBvZGVyIFdlcnQgd3VyZGUgendlaW1hbCBhbmdlZ2ViZW4uIEdlYmVuIFNpZSBpbiBudXIgZWluemVsbiBhbi4iCk1DSUVSUl9JTlZBTElEX0ZJTEUsIAkJIkRpZSBhbmdlZ2ViZW5lIERhdGVpIGthbm4gYXVmIGRlbSBNQ0kgLSBHZXLkdCBuaWNodCB3aWVkZXJnZWdlYmVuIHdlcmRlbi4gRGllIERhdGVpIGlzdCB3YWhyc2NoZWlubGljaCBiZXNjaORkaWd0IG9kZXIgaW4gZWluZW0gdW5n/Gx0aWdlbiBGb3JtYXQuIgpNQ0lFUlJfTlVMTF9QQVJBTUVURVJfQkxPQ0ssIAkiRGVyIFBhcmFtZXRlcmJsb2NrLCBkZXIgenUgTUNJIPxiZXJnZWJlbiB3dXJkZSwgd2FyIE5VTEwuIgpNQ0lFUlJfVU5OQU1FRF9SRVNPVVJDRSwgCSJFcyBrYW5uIGtlaW5lIHVuYmVuYW5udGUgRGF0ZWkgZ2VzcGVpY2hlcnQgd2VyZGVuLiBHZWJlbiBTaWUgZWluZW4gRGF0ZWluYW1lbiBhbi4iCk1DSUVSUl9ORVdfUkVRVUlSRVNfQUxJQVMsIAkiU2llIG38c3NlbiBlaW5lbiBBbGlhcyBtaXQgZGVtICduZXcnIC0gUGFyYW1ldGVyIGFuZ2ViZW4uIgpNQ0lFUlJfTk9USUZZX09OX0FVVE9fT1BFTiwgCSJEYXMgJ25vdGlmeScgRmxhZyBpc3QgdW56dWzkc3NpZyBm/HIgc2VsYnN09mZmbmVuZGUgR2Vy5HRlLiIKTUNJRVJSX05PX0VMRU1FTlRfQUxMT1dFRCwgCSJFaW4gRGF0ZWluYW1lIGthbm4gbWl0IGRpZXNlbSBHZXLkdCBuaWNodCB2ZXJ3ZW5kZXQgd2VyZGVuLiIKTUNJRVJSX05PTkFQUExJQ0FCTEVfRlVOQ1RJT04sICJEaWUgQmVmZWhsZSBzaW5kIGluIGRlciBhbmdlZ2ViZW5lbiBSZWloZW5mb2xnZSBuaWNodCBhdXNm/GhyYmFyLiDEbmRlcm4gU2llIGRpZSBSZWloZW5mb2xnZSwgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKTUNJRVJSX0lMTEVHQUxfRk9SX0FVVE9fT1BFTiwgCSJEZXIgQmVmZWhsIGthbm4gbmljaHQgYXVmIGVpbiBzZWxic3T2ZmZuZWRlcyBHZXLkdCBhbmdld2FuZHQgd2VyZGVuLiBXYXJ0ZW4gU2llLCBiaXMgZGFzIEdlcuR0IGdlc2NobG9zc2VuIHd1cmRlIHVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4iCk1DSUVSUl9GSUxFTkFNRV9SRVFVSVJFRCwgCSJEZXIgRGF0ZWluYW1lIGlzdCB1bmf8bHRpZy4gRGVyIERhdGVpbmFtZSBtdXNzIGF1cyBtYXhpbWFsIDggWmVpY2hlbiwgZ2Vmb2xndCB2b24gZWluZW0gUHVua3QgdW5kIGVpbmVyIERhdGVpbmFtZW5lcndlaXRlcnVuZyBiZXN0ZWhlbi4iCk1DSUVSUl9FWFRSQV9DSEFSQUNURVJTLCAJIlp1c+R0emxpY2hlIFplaWNoZW4gbmFjaCBlaW5lciBaZWljaGVua2V0dGUgbWl0IEFuZvxocnVuZ3N6ZWljaGVuIHNpbmQgbmljaHQgZXJsYXVidC4iCk1DSUVSUl9ERVZJQ0VfTk9UX0lOU1RBTExFRCwgCSJEYXMgYW5nZWdlYmVuZSBHZXLkdCBpc3QgbmljaHQgYXVmIElocmVuIFN5c3RlbSBpbnN0YWxsaWVydC4gQmVudXR6ZW4gU2llIGRpZSBIYXJkd2FyZWVya2VubnVuZyBpbiBkZXIgU3lzdGVtc3RldWVydW5nLCB1bSBkYXMgR2Vy5HQgenUgaW5zdGFsbGllcmVuLiIKTUNJRVJSX0dFVF9DRCwgCQkiQXVmIGRpZSBhbmdlZ2ViZW5lIERhdGVpIG9kZXIgZGFzIE1DSSAtIEdlcuR0IGthbm4gbmljaHQgenVnZWdyaWZmZW4gd2VyZGVuLiBWZXJzdWNoZW4gU2llLCBkYXMgVmVyemVpY2huaXMgenUgd2VjaHNlbG4gb2RlciBkYXMgU3lzdGVtIG5ldSB6dSBzdGFydGVuLiIKTUNJRVJSX1NFVF9DRCwgCQkiQXVmIGRpZSBhbmdlZ2ViZW5lIERhdGVpIG9kZXIgZGFzIE1DSSAtIEdlcuR0IGthbm4gbmljaHQgenVnZWdyaWZmZW4gd2VyZGVuLCB3ZWlsIGRpZSBBbndlbmR1bmcgbmljaHQgZGFzIFZlcnplaWNobmlzIHdlY2hzZWxuIGthbm4uIgpNQ0lFUlJfU0VUX0RSSVZFLCAJCSJBdWYgZGllIGFuZ2VnZWJlbmUgRGF0ZWkgb2RlciBkYXMgTUNJIC0gR2Vy5HQga2FubiBuaWNodCB6dWdlZ3JpZmZlbiB3ZXJkZW4sIHdlaWwgZGllIEFud2VuZHVuZyBuaWNodCBkYXMgTGF1Zndlcmsgd2VjaHNlbG4ga2Fubi4iCk1DSUVSUl9ERVZJQ0VfTEVOR1RILCAJCSJHZWJlbiBTaWUgZWluZW4gR2Vy5HRlLSBvZGVyIFRyZWliZXJuYW1lbiBtaXQgd2VuaWdlciBhbHMgNzkgWmVpY2hlbiBhbi4iCk1DSUVSUl9ERVZJQ0VfT1JEX0xFTkdUSCwgCSJHZWJlbiBTaWUgZWluZW4gR2Vy5HRlLSBvZGVyIFRyZWliZXJuYW1lbiBtaXQgd2VuaWdlciBhbHMgNjkgWmVpY2hlbiBhbi4iCk1DSUVSUl9OT19JTlRFR0VSLCAJCSJEZXIgYW5nZWdlYmVuZSBCZWZlaGwgZXJmb3JkZXJ0IGVpbmVuIGdhbnp6YWhsaWdlbiBQYXJhbWV0ZXIuIEJpdHRlIGdlYmVuIFNpZSBlaW5lbiBhbi4iCk1DSUVSUl9XQVZFX09VVFBVVFNJTlVTRSwgCSJBbGxlIFdhdmVmb3JtZ2Vy5HRlLCBkaWUgZGllc2UgRGF0ZWllbiBpbiBkZW0gZ2VnZW535HJ0aWdlbiBGb3JtYXQgd2llZGVyZ2ViZW4ga/ZubnRlbiwgc2luZCBpbiBCZW51dHp1bmcuIFdhcnRlbiBTaWUsIGJpcyBlaW4gV2F2ZWZvcm1nZXLkdCBmcmVpIGlzdCwgdW5kIHdpZWRlcmhvbGVuIFNpZSBkZW4gVm9yZ2FuZy4iCk1DSUVSUl9XQVZFX1NFVE9VVFBVVElOVVNFLCAJIkRhcyBnZWdlbnfkcnRpZ2UgV2F2ZWZvcm1nZXLkdCBrYW5uIG5pY2h0IHdpZWRlcmdlYmVuLCB3ZWlsIGVzIGdlcmFkZSBiZW51dHp0IHdpcmQuIFdhcnRlbiBTaWUsIGJpcyBkYXMgR2Vy5HQgZnJlaSBpc3QsIHVuZCB3aWVkZXJob2xlbiBTaWUgZGVuIFZvcmdhbmcuIgpNQ0lFUlJfV0FWRV9JTlBVVFNJTlVTRSwgCSJFcyBpc3Qga2VpbiBXYXZlZm9ybWdlcuR0IGZyZWksIGRhcyBkYXMgZ2VnZW535HJ0aWdlIEZvcm1hdCBhdWZ6ZWljaG5lbiBr9m5udGUuIFdhcnRlbiBTaWUsIGJpcyBlaW4gV2F2ZWZvcm1nZXLkdCBmcmVpIGlzdCwgdW5kIHdpZWRlcmhvbGVuIFNpZSBkZW4gVm9yZ2FuZy4iCk1DSUVSUl9XQVZFX1NFVElOUFVUSU5VU0UsIAkiRGFzIGdlZ2Vud+RydGlnZSBXYXZlZm9ybWdlcuR0IGthbm4gbmljaHQgYXVmemVpY2huZW4sIHdlaWwgZXMgZ2VyYWRlIHZlcndlbmRldCB3aXJkLiBXYXJ0ZW4gU2llLCBiaXMgZGFzIEdlcuR0IGZyZWkgaXN0LCB1bmQgd2llZGVyaG9sZW4gU2llIGRlbiBWb3JnYW5nLiIKTUNJRVJSX1dBVkVfT1VUUFVUVU5TUEVDSUZJRUQsCSJKZWRlcyBrb21wYXRpYmxlIFdhdmVmb3JtIC0gV2llZGVyZ2FiZWdlcuR0IGthbm4gdmVyd2VuZGV0IHdlcmRlbi4iCk1DSUVSUl9XQVZFX0lOUFVUVU5TUEVDSUZJRUQsIAkiSmVkZXMga29tcGF0aWJsZSBXYXZlZm9ybSAtIEF1Zm5haG1lZ2Vy5HQga2FubiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKTUNJRVJSX1dBVkVfT1VUUFVUU1VOU1VJVEFCTEUsICJFcyBpc3Qga2VpbiBXYXZlZm9ybWdlcuR0IGluc3RhbGxpZXJ0LCBkYXMgRGF0ZWllbiBpbSBha3R1ZWxsZW4gRm9ybWF0IHdpZWRlcmdlYmVuIGthbm4uIEJlbnV0emVuIFNpZSBkaWUgSGFyZHdhcmVlcmtlbm51bmcgaW4gZGVyIFN5c3RlbXN0ZXVlcnVuZywgdW0gZWluIFdhdmVmb3JtZ2Vy5HQgenUgaW5zdGFsbGllcmVuLiIKTUNJRVJSX1dBVkVfU0VUT1VUUFVUVU5TVUlUQUJMRSwiRGFzIFdpZWRlcmdhYmVnZXLkdCBlcmtlbm50IGRhcyBnZWdlbnfkcnRpZ2UgRGF0ZWlmb3JtYXQgbmljaHQuIgpNQ0lFUlJfV0FWRV9JTlBVVFNVTlNVSVRBQkxFLCAJIkVzIGlzdCBrZWluIFdhdmVmb3JtZ2Vy5HQgaW5zdGFsbGllcnQsIGRhcyBEYXRlaWVuIGltIGFrdHVlbGxlbiBGb3JtYXQgYXVmbmVobWVuIGthbm4uIEJlbnV0emVuIFNpZSBkaWUgSGFyZHdhcmVlcmtlbm51bmcgaW4gZGVyIFN5c3RlbXN0ZXVlcnVuZywgdW0gZWluIFdhdmVmb3JtZ2Vy5HQgenUgaW5zdGFsbGllcmVuLiIKTUNJRVJSX1dBVkVfU0VUSU5QVVRVTlNVSVRBQkxFLCAiRGFzIEdlcuR0LCBtaXQgZGVtIFNpZSBhdWZ6ZWljaG5lbiBt9mNodGVuLCBlcmtlbm50IGRhcyBnZWdlbnfkcnRpZ2UgRGF0ZWlmb3JtYXQgbmljaHQuIgpNQ0lFUlJfTk9fV0lORE9XLCAJCSJFcyBnaWJ0IGtlaW4gQW56ZWlnZWZlbnN0ZXIuIgpNQ0lFUlJfQ1JFQVRFV0lORE9XLCAJCSJGZW5zdGVyIGtvbm50ZSBuaWNodCBlcnpldWd0IG9kZXIgdmVyd2VuZGV0IHdlcmRlbi4iCk1DSUVSUl9GSUxFX1JFQUQsIAkJIkRpZSBEYXRlaSBrb25udGUgbmljaHQgZ2VsZXNlbiB3ZXJkZW4uIFN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBkaWUgRGF0ZWkgZXhpc3RpZXJ0IG9kZXIgSWhyZSBOZXR6d2Vya3ZlcmJpbmR1bmcgbm9jaCBiZXN0ZWh0LiIKTUNJRVJSX0ZJTEVfV1JJVEUsIAkJIkRpZSBEYXRlaSBrb25udGUgbmljaHQgZ2VzY2hyaWViZW4gd2VyZGVuLiBTdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZ2Vu/GdlbmQgUGxhdHogYXVmIGRlbSBEYXRlbnRy5GdlciB2ZXJm/GdiYXIgaXN0LCBvZGVyIGRhc3MgZGllIE5ldHp3ZXJrdmVyYmluZHVuZyBub2NoIGJlc3RlaHQuIgpNQ0lFUlJfU0VRX0RJVl9JTkNPTVBBVElCTEUsIAkiRGllIFplaXRmb3JtYXRlIHZvbiAiInNvbmcgcG9pbnRlciIiIHVuZCBTTVBURSBzY2hsaWVzc2VuIHNpY2ggZ2VnZW5zZWl0aWcgYXVzLiBTaWUga/ZubmVuIHNpZSBuaWNodCB6dXNhbW1lbiB2ZXJ3ZW5kZW4uIgpNQ0lFUlJfU0VRX05PTUlESVBSRVNFTlQsIAkiRXMgc2luZCBrZWluZSBNSURJIC0gR2Vy5HRlIGF1ZiBkZW0gU3lzdGVtIGluc3RhbGxpZXJ0LiBCZW51dHplbiBTaWUgZGllIEhhcmR3YXJlZXJrZW5udW5nIGluIGRlciBTeXN0ZW1zdGV1ZXJ1bmcsIHVtIGVpbmVuIE1JREkgLSBUcmVpYmVyIHp1IGluc3RhbGxpZXJlbi4iCk1DSUVSUl9TRVFfUE9SVF9JTlVTRSwgCSJEZXIgYW5nZWdlYmVuZSBNSURJIC0gQW5zY2hsdXNzIHdpcmQgYmVyZWl0cyB2ZXJ3ZW5kZXQuIFdhcnRlbiBTaWUgYmlzIGRlciBBbnNjaGx1c3MgZnJlaSBpc3QsIHVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4iCk1DSUVSUl9TRVFfUE9SVF9NQVBOT0RFVklDRSwgCSJEYXMgZ2VnZW535HJ0aWdlIE1JREkgLSBNYXBwZXIgU2V0dXAgYmVudXR6dCBlaW4gTUlESSAtIEdlcuR0LCBkYXNzIG5pY2h0IGF1ZiBJaHJlbiBTeXN0ZW0gaW5zdGFsbGllcnQgaXN0LiBCZW51dHplbiBTaWUgZGVuIE1JREkgLSBNYXBwZXIgaW4gZGVyIFN5c3RlbXN0ZXVlcnVuZywgdW0gZGFzIFNldHVwIHp1IORuZGVybi4iCk1DSUVSUl9TRVFfUE9SVF9NSVNDRVJST1IsIAkiQmVpbSBCZW51dHplbiBkZXMgYW5nZWdlYmVuZW4gQW5zY2hsdXNzZXMgdHJhdCBlaW4gRmVobGVyIGF1Zi4iCk1DSUVSUl9TRVFfUE9SVF9OT05FWElTVEVOVCwgCSJFcyBzaW5kIGtlaW5lIGFuZ2VnZWJuZW4gTUlESSAtIEdlcuR0ZSBhdWYgZGVtIFN5c3RlbSBpbnN0YWxsaWVydC4gQmVudXR6ZW4gU2llIGRpZSBIYXJkd2FyZWVya2VubnVuZyBpbiBkZXIgU3lzdGVtc3RldWVydW5nLCB1bSBlaW4gTUlESSAtIEdlcuR0IHp1IGluc3RhbGxpZXJlbi4iCk1DSUVSUl9TRVFfUE9SVFVOU1BFQ0lGSUVELCAJIkVzIGdpYnQga2VpbmVuIGFrdHVlbGxlbiBNSURJIC0gQW5zY2hsdXNzIGF1ZiBkZW0gU3lzdGVtLiIKTUNJRVJSX1NFUV9USU1FUiwgCQkiQWxsZSBNdWx0aW1lZGlhemVpdGdlYmVyIHdlcmRlbiB2b24gYW5kZXJlbiBBbndlbmR1bmdlbiB2ZXJ3ZW5kZXQuIEJlZW5kZW4gU2llIGVpbmUgZGllc2VyIEFud2VuZHVuZ2VuLCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgoKRU5ECg==