MjAwNC0wNy0wMiAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBGaXgga2VybmVsIGhhbmcgb24gbWtmaWZvIHVuZGVyIDIuNCBrZXJuZWxzIChzcG90dGVkIGFuZCBwYXRjaAoJYnkgTWF0dGlhcyBXYWRtYW4pCgoJKiBBZGRlZCBvcHRpb24gZm9yIGRpcmVjdCByZWFkL3dyaXRlICgtcikKCgkqIEZpeCByZXZhbGlkYXRlIHRpbWUgc2V0dGluZyBmb3IgbmV3bHkgY3JlYXRlZCBpbm9kZXMKCjIwMDQtMDctMDEgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogQ2hhbmdlIHBhc3NpbmcgZnVzZSBpbmNsdWRlIGRpciB0byAyLjYga2VybmVsIG1ha2Ugc3lzdGVtIG1vcmUKCXJvYnVzdCAoaG9wZWZ1bGx5IGZpeGVzIHByb2JsZW1zIHNlZW4gb24gU3VTRSA5LjEpCgoyMDA0LTA2LTMwICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEFjcXVpcmUgaW5vZGUtPmlfc2VtIGJlZm9yZSBvcGVuIGFuZCByZWxlYXNlIG1ldGhvZHMgdG8gcHJldmVudAoJY29uY3VycmVudCByZW5hbWUgb3IgdW5saW5rIG9wZXJhdGlvbnMuCgoJKiBNYWtlIF9fZnVzZV9yZWFkX2NtZCgpIHJlYWQgb25seSBvbmUgY29tbWFuZC4gIFRoaXMgYWxsb3dzCgltdWx0aXBsZXhpbmcgdGhlIGZ1c2UgZmlsZSBkZXNjcmlwdG9yIHdpdGggb3RoZXIgZXZlbnQgc291cmNlcwoJdXNpbmcgc2VsZWN0KCkgb3IgcG9sbCgpIChwYXRjaCBieSBKZWZmIEhhcnJpcykKCgkqIEV4cG9ydCAnZXhpdGVkJyBmbGFnIHdpdGggX19mdXNlX2V4aXRlZCgpIChwYXRjaCBieSBKZWZmIEhhcnJpcykKCjIwMDQtMDYtMjcgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogRml4IGZpbGUgb2Zmc2V0IHdyYXAgYXJvdW5kIGF0IDRHIHdoZW4gZG9pbmcgbGFyZ2UgcmVhZHMKCjIwMDQtMDYtMjQgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogRml4IG1lbW9yeSBsZWFrIGluIG9wZW4gKFZhbGllbnQgR291Z2gpCgoyMDA0LTA2LTI0ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEFkZCAiY2xvc2UgYWZ0ZXIgZGVsZXRlIiBzdXBwb3J0IHRvIGxpYmZ1c2UgKHBhdGNoIGJ5IFZhbGllbnQKCUdvdWdoKQoKCSogQ2FuY2VsIGFsbCB3b3JrZXIgdGhyZWFkcyBiZWZvcmUgZXhpdCBpbiBtdWx0aXRocmVhZGVkIG1vZGUKCjIwMDQtMDYtMjMgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogRml4IGxvY2tpbmcgYnVncwoKCSogRG9uJ3Qgc2VuZCByZXBseSB0byBSRUxFQVNFCgoJKiBXb3JrIHdpdGggbmV3ZXIgbGlidG9vbCAoMS41YSkKCgkqIENoZWNrIGZvciBzdF9hdGltIG1lbWJlciBvZiBzdHJ1Y3Qgc3RhdAoJCjIwMDQtMDYtMjIgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogTm8gcmVxdWVzdCBhbGxvY2F0aW9uIG5lZWRlZCBvbiBpbm9kZSBhbmQgZmlsZSByZWxlYXNlCgkKMjAwNC0wNi0yMSAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBGaXggcG9zc2libGUgaW5vZGUgbGVhayBpbiB1c2Vyc3BhY2UgaW4gY2FzZSBvZiB1bmZpbmlzaGVkCglsb29rdXAvbWtub2QvbWtkaXIvc3ltbGluay9saW5rIG9wZXJhdGlvbi4KCQoyMDA0LTA2LTIwICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEZpeCBzb21lIHJhY2VzIGFuZCBjbGVhbnVwcyBpbiBmdXNlX3JlYWRfc3VwZXIoKQoJCjIwMDQtMDYtMTkgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogUmVxdWVzdHMgYXJlIGFsbG9jYXRlZCBhdCBvcGVuIHRpbWUKCQoyMDA0LTA2LTAzICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEJ1aWxkIHNoYXJlZCBsaWJyYXJ5IGFzIHdlbGwgYXMgc3RhdGljICh1c2luZyBsaWJ0b29sKQoKCSogQ2hhbmdlIEZVU0VfTUlOT1JfVkVSU0lPTiBmcm9tIDEgdG8gMC4gIEkga25vdyBpdCdzIGlsbGVnYWwgYnV0Cgl0aGVyZSBoYXMgbm90IGJlZW4gYSByZWxlYXNlIHdpdGggdGhlIHByZXZpb3VzIG1pbm9yIG51bWJlciwgYW5kIEkKCWhvcGUgbm9ib2R5IGlzIHVzaW5nIGl0IGZvciBhbnl0aGluZy4KCgkqIENoYW5nZSBmdXNlX21haW4oKSwgc28gdGhhdCBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIGdvIGludG8KCWJhY2tncm91bmQgaWYgbW91bnQgaXMgc3VjY2Vzc2Z1bC4gICctZicgYW5kICctZCcgb3B0aW9ucyBkaXNhYmxlCgliYWNrZ3JvdW5kaW5nLiAgVGhpcyBmaXhlcyB0aGUgIldoeSBkb2VzIG15IEZVU0UgZGFlbW9uIGhhbmc/IgoJbmV3YmllIGNvbXBsYWludC4KCgkqIENhY2hlIEVOT1NZUyAoZnVuY3Rpb24gbm90IGltcGxlbWVudGVkKSBlcnJvcnMgb24gKnhhdHRyLCBmbHVzaAoJYW5kIGZzeW5jCgoJKiBEb24ndCBjYWxsIGdldGRpciBtZXRob2QgZnJvbSBvcGVuKCkgb25seSBmcm9tIGZpcnN0IHJlYWRkaXIoKS4KCU9wZW4gaXMgc29tZXRpbWVzIGp1c3QgdXNlZCB0byBzdG9yZSB0aGUgY3VycmVudCBkaXJlY3RvcnkKCShlLmcuIGZpbmQpCgkKMjAwNC0wNS0xOCAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBBZGRlZCBmbHVzaCgpIGNhbGwKCQoyMDA0LTA1LTA0ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEV4dGVuZGVkIGF0dHJpYnV0ZXMgc3VwcG9ydCBmb3IgMi40IChwYXRjaCBieSBDb2R5IFBpc3RvKQoJCjIwMDQtMDQtMjAgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogRml4ZWQgcGFyc2VyIHdpdGggbW9kdmVyc2lvbnMgKE1hdHRpYXMgV2FkbWFuKQoJCjIwMDQtMDQtMTkgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogQWRkZWQgbW91bnQgb3B0aW9uIHBhcnNlciB0byAyLjQgYnVpbGQKCQoyMDA0LTA0LTEzICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFJlcGxhY2VkIGJpbmFyeSBtb3VudCBkYXRhIHdpdGggdGV4dCBvcHRpb25zCgoJKiBTaG93IEZVU0Ugc3BlY2lmaWMgbW91bnQgb3B0aW9ucyBpbiAvcHJvYy9tb3VudHMKCgkqIENoZWNrIGluIGZ1c2UuaCB3aGV0aGVyIF9GSUxFX09GRlNFVF9CSVRTIGlzIHNldCB0byA2NAoKMjAwNC0wNC0wOSAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBDaGVjayBzb21lIGxpbWl0cyBzbyB1c2Vyc3BhY2Ugd29uJ3QgZ2V0IHRvbyBiaWcgcmVxdWVzdHMKCjIwMDQtMDQtMDUgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogS2lsbCBjb21waWxlIHdhcm5pbmcKCgkqIFVwZ3JhZGVkIHVzZXItbW91bnQgcGF0Y2ggZm9yIDIuNi41CgoyMDA0LTA0LTAyICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEFkZCBkZXRlY3Rpb24gb2YgdXNlci1tb2RlLWxpbnV4IHRvIGNvbmZpZ3VyZQoKMjAwNC0wMy0zMSAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBmaXhlZCB6ZXJvIHNpemUgY2FzZSBmb3IgZ2V0eGF0dHIgYW5kIGxpc3R4YXR0cgoKMjAwNC0wMy0zMCAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBuZXcgZnVzZXJtb3VudCBmbGFnICcteic6IGxhenkgdW5tb3VudCwgZGVmYXVsdCBpcyBub3QgbGF6eQoKCSogRXh0ZW5kZWQgYXR0cmlidXRlcyBvcGVyYXRpb25zIGFkZGVkIChnZXR4YXR0ciwgc2V0eGF0dHIsCglsaXN0eGF0dHIsIHJlbW92ZXhhdHRyKQoKMjAwNC0wMy0yNSAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBJZiBmaWxlc3lzdGVtIGRvZXNuJ3QgZGVmaW5lIGEgc3RhdGZzIG9wZXJhdGlvbiwgdGhlbiBhbgoJYWxsLXplcm8gZGVmYXVsdCBzdGF0ZnMgaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiBFTk9TWVMKCjIwMDQtMDMtMjQgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogQWRkIEZTX0JJTkFSWV9NT1VOVERBVEEgZmlsZXN5c3RlbSBmbGFnIGZvciBrZXJuZWxzID4gMi42LjQKCjIwMDQtMDMtMDkgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogRml4IGZvciB1Q2xpbnV4IChDaHJpc3RpYW4gTWFnbnVzc29uKQoKMjAwNC0wMy0wMiAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBmdXNlX21haW4oKSBhZGRzICItbiBwcm9nbmFtZSIgdG8gdGhlIGZ1c2VybW91bnQgY29tbWFuZCBsaW5lCgkKCSogTW9yZSBrZXJuZWwgaW50ZXJmYWNlIGNoYW5nZXM6CgoJKiBMb29rdXAvZ2V0YXR0ciByZXR1cm4gY2FjaGUgdGltZW91dCB2YWx1ZXMKCjIwMDQtMDItMjUgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogQ2xlYW4gdXAgb3B0aW9uIHBhcnNpbmcgaW4gZnVzZV9tYWluKCkKCgkqIEFkZGVkIGZ1c2VfZ2V0KCkgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgZnVzZSBvYmplY3QgY3JlYXRlZAoJYnkgZnVzZV9tYWluKCkKCjIwMDQtMDItMjAgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogcmVtb3ZlZCBvbGQgd2F5IG9mIG1vdW50aW5nIChmdXNlcm1vdW50IG1vdW50cG9pbnQgcHJvZ3JhbSkKCgkqIG1vcmUga2VybmVsIGludGVyZmFjZSBjaGFuZ2VzOgoKCSogYWRkZWQgbmFub3NlY29uZCBwcmVjaXNpb24gdG8gZmlsZSB0aW1lcwoKCSogcmVtb3ZlZCBpbnRlcmZhY2UgdmVyc2lvbiBmcm9tIG1vdW50IGRhdGEKCgkqIGFkZGVkIC9wcm9jL2ZzL2Z1c2UvdmVyc2lvbiB3aGljaCBjb250YWlucyBNQUpPUi5NSU5PUgoKMjAwNC0wMi0xOSAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBzdGF0ZnMgbGlicmFyeSBBUEkgY2hhbmdlZCB0byBtYXRjaCBvdGhlciBtZXRob2RzLiAgU2luY2UgdGhpcwoJICBpcyBub3QgYmFja3dhcmQgY29tcGF0aWJsZSBGVVNFX01BSk9SX1ZFUlNJT04gaXMgY2hhbmdlZCB0byAyCgoJKiBrZXJuZWwgaW50ZXJmYWNlIGNoYW5nZXMgZm9sbG93OgoKCSogc3RhdGZzIGNoYW5nZWQgdG8gNjQgYml0cywgYWRkZWQgJ2JhdmFpbCcgZmllbGQKCgkqIGFkZCBnZW5lcmF0aW9uIG51bWJlciB0byBsb29rdXAgcmVzdWx0CgoJKiBvcHRpbWl6ZWQgbWtub2QvbWtkaXIvc3ltbGluay9saW5rIChubyBzZXBhcmF0ZSBsb29rdXAgaXMKCW5lZWRlZCkKCgkqIHJkZXYgc2l6ZSBpbmNyZWFzZWQgdG8gMzIgYml0cyBmb3IgbWtub2QKCgkqIGtlcm5lbCBpbnRlcmZhY2UgdmVyc2lvbiBjaGFuZ2VkIHRvIDMuMQoJCjIwMDQtMDItMTggIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogdXNlci1tb3VudCB1cGdyYWRlZCBmb3IgMi42LjMga2VybmVsCgkKMjAwNC0wMi0xNyAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBBZGRlZCB1c2VyLW1vdW50LjIuNi4yLXJjMy5wYXRjaAoKCSogQWRkIEZTX1NBRkUgZmxhZyB0byBmdXNlIGZpbGVzeXN0ZW0KCgkqIGZ1c2VybW91bnQgc2hvdWxkIGFsbG93ICh1biltb3VudGluZyBmb3Igbm9uLXJvb3QgZXZlbiBpZiBub3QKCXN1aWQtcm9vdAoJCjIwMDQtMDItMTIgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogUmVtb3ZlIE1TX1BFUk1JU1NJT04gbW91bnQgZmxhZyAodGhhdCBtZWFucyBzb21ldGhpbmcgZWxzZSBub3cpCgkKMjAwNC0wMi0xMCAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBBZGRlZCBjaGVjayBmb3IgaV9zaXplX3JlYWQvd3JpdGUgZnVuY3Rpb25zIHRvIGNvbmZpZ3VyZS5pbgoJKHBhdGNoIGJ5IFZhbGllbnQgR291Z2gpCgoyMDA0LTAyLTA2ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEZpeGVkIHdyaXRpbmcgPj0gMkcgZmlsZXMKCgkqIENoZWNrIGZpbGUgc2l6ZSBvbiBvcGVuICh3aXRoIGdlbmVyaWNfZmlsZV9vcGVuKCkpCgoJKiBSZWFkcGFnZSBjYWxscyBmbHVzaF9kY2FjaGVfcGFnZSgpIGFmdGVyIHN0b3JpbmcgZGF0YQoKCSogVXNlIGlfc2l6ZV9yZWFkL3dyaXRlIGZvciBhY2Nlc3NpbmcgaW5vZGUtPmlfc2l6ZQoKCSogTWFrZSBsb29wYmFjayBtb3VudCBvZiBhIGZ1c2UgZmlsZSB3b3JrCgkKMjAwNC0wMi0wNCAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBSZWxlYXNlZCAxLjEKCQoyMDA0LTAxLTI5ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFByb3Blcmx5IGNoZWNrIGlmIHRoZSBpbm9kZSBleGlzdHMgaW4gZnVzZV9pbnZhbGlkYXRlCgkKMjAwNC0wMS0yNyAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBBZGRlZCAtcSBvcHRpb24gZm9yIGZ1c2VybW91bnQKCgkqIGZ1c2VfdW5tb3VudCgpIG5vdyB1c2VzIC1xIG9wdGlvbiBvZiBmdXNlcm1vdW50LCBzbyBubyBlcnJvciBpcwoJcHJpbnRlZCBpZiB0aGUgY2F1c2Ugb2YgdGhlIHByb2dyYW0gZXhpdCBpcyB0aGF0IHRoZSBmaWxlc3lzdGVtCgloYXMgYWxyZWFkeSBiZWVuIHVubW91bnRlZAoKCSogRml4IGlfbmxpbmsgY29ycmVjdG5lc3MgYWZ0ZXIgcm1kaXIvdW5saW5rCgoyMDA0LTAxLTI2ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFJlbGVhc2VkIDEuMS1wcmUyCgoyMDA0LTAxLTI2ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEZpeCB0eXBvICh0aGFua3MgTWFyY29zIERpb25lKQoKCSogQ29tcGlsZSBmaXhlcyBmb3IgMi40IGtlcm5lbHMKCQoyMDA0LTAxLTIzICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEZpeCBDT05GSUdfTU9EVkVSU0lPTlMgY29tcGlsZSBvbiAyLjYKCQoyMDA0LTAxLTIyICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFdyaXRlIGFsbCBwZW5kaW5nIGRhdGEgYmVmb3JlIGEgUkVMRUFTRSBvcGVyYXRpb24KCgkqIFN1cHByZXNzICdCYWQgZmlsZSBkZXNjcmlwdG9yJyB3YXJuaW5nIG9uIGV4aXQKCgkqIFJlcGxhY2VkIGZ1c2VybW91bnQgb3B0aW9uICctZCB4eHgnIHdpdGggJy1uIHh4eCcgc28gaXQgZG9lc24ndAoJZ2V0IGNvbmZ1c2VkIHdpdGggJy1kJyBvZiBmdXNlX21haW4oKSAoc29ycnkgYWJvdXQgdGhpcyBjaGFuZ2UpCgoJKiBOZXcgZnVzZXJtb3VudCBvcHRpb24gJy1sJyB3aGljaCBlbmFibGVzIGJpZyByZWFkcy4gIEJpZyByZWFkcwoJYXJlIG5vdyBkaXNhYmxlZCBieSBkZWZhdWx0LgoKCSogZnVzZV9tYWluKCkgY2FuIGFjY2VwdCBmdXNlcm1vdW50IGFyZ3VtZW50cyBhZnRlciBhICctLScKCjIwMDQtMDEtMTkgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogU3VwcG9ydCBmb3IgZXhwb3J0aW5nIGZpbGVzeXN0ZW0gb3ZlciBORlMgKHNlZSBSRUFETUUuTkZTKQoKMjAwNC0wMS0xNCAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBTdXBwb3J0IG5vbi1ibG9ja2luZyB3cml0ZXBhZ2Ugb24gMi42LiAgVGhpcyBtYWtlcyBGVVNFIGJlaGF2ZQoJbXVjaCBtb3JlIG5pY2VseSBpbiBsb3ctbWVtb3J5IHNpdHVhdGlvbnMKCgkqIEZpeCAzMi1iaXQgZGV2IGhhbmRsaW5nIGluIGdldGF0dHIgYW5kIG1rbm9kIGZvciAyLjYga2VybmVscy4KCShOb3RlOiB0aGUgbWtub2QgbWV0aG9kIGRvZXMgbm90IHlldCB1c2UgMzJiaXQgZGV2aWNlIG51bWJlcikKIAoyMDA0LTAxLTEzICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIENvZGUgY2xlYW51cHMKCjIwMDQtMDEtMDcgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogUmVsZWFzZWQgMS4xLXByZTEKCjIwMDQtMDEtMDYgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogSW50ZWdyYXRlZCAyLjYga2VybmVsIHN1cHBvcnQgcGF0Y2ggYnkgTWljaGFlbCBHcmlnb3JpZXYKCgkqIEltcHJvdmVtZW50cyBhbmQgY2xlYW51cHMgZm9yIDIuNiBrZXJuZWxzCgoyMDA0LTAxLTA1ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEFkZGVkIC1kIG9wdGlvbiB0byBmdXNlcm1vdW50IAoKMjAwMy0xMi0xNSAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBBZGRlZCBtYWpvcittaW5vciB2ZXJzaW9uIHRvIGxpYnJhcnkgQVBJLCBhbmQgbWlub3IgdmVyc2lvbiB0bwoJICBrZXJuZWwgQVBJCgoyMDAzLTEyLTEzICBEYXZpZCBNY05hYiA8ZGF2aWRAcmViaXJ0aGluZy5jby5uej4KCgkqIEltcGxlbWVudGVkIGZzeW5jIHN1cHBvcnQgaW4gZXhhbXBsZXMvZXhhbXBsZS5weQoKCSogSW1wbGVtZW50ZWQgJ2ZzeW5jJyBhbmQgJ3N0YXRmcycgbWV0aG9kcyBpbiBweXRob24KCSAgaW50ZXJmYWNlCgoyMDAzLTEyLTEyICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIE1ha2UgaXQgY29tcGlsZSBvbiAyLjQuMTkuICAKCgkqIEFkZCBmc3luYyBvcGVyYXRpb24gKHdyaXRlIGZpbGUgZmFpbGVkIG9uIHhlbWFjcyAmIHZpKQoKMjAwMy0xMi0xMiAgRGF2aWQgTWNOYWIgPGRhdmlkQHJlYmlydGhpbmcuY28ubno+CgoJKiBBZGRlZCBkaXN0dXRpbHMgc3VwcG9ydCB0byB0aGUgcHl0aG9uIG1vZHVsZSwgYXMgcGVyIHN0YW5kYXJkCgkgIHB5dGhvbiBkZXZlbG9wbWVudCBwcmFjdGljZQoKMjAwMy0xMi0xMSAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBBZGQgZmlsZSBsb2NraW5nIGZvciBtb3VudC91bm1vdW50IChiYXNlZCBvbiBwYXRjaCBieSBWYWxpZW50CglHb3VnaCkKCjIwMDMtMTItMTEgIERhdmlkIE1jTmFiIDxkYXZpZEByZWJpcnRoaW5nLmNvLm56PgoKCSogUHl0aG9uIGZpbGVzeXN0ZW0gLSB3YXMgYnJva2VuIHdpdGggcHl0aG9uMi4zLCBub3cgZml4ZWQ6CgkgICAtIGNoYW5nZWQgUHlUdXBsZV8qIGNhbGxzIHRvIFB5U2VxdWVuY2VfKiwgYmVjYXVzZSBvcy5sc3RhdAoJICAgICBpcyBubyBsb25nZXIgcmV0dXJuaW5nIGEgcHVyZSB0dXBsZQoJICAgLSBjaGFuZ2VkIFB5SW50X0NoZWNrKCkgY2FsbHMgdG8gYWxzbyBjYWxsIFB5TG9uZ19DaGVjaywKCSAgICAgdG8gY292ZXIgZm9yIGNhc2VzIChlZyBvcy5sc3RhdCkgd2hlcmUgbG9uZ3MgYXJlIHJldHVybmVkCgkgICAtIEFkZGVkIHN1cHBvcnQgZm9yIGZpbGUgJ3JlbGVhc2UnIGhhbmRsaW5nLCB3aGljaCBJTU8gaXMKCSAgICAgZXNzZW50aWFsIHNpbmNlIHRoaXMgc2lnbmFscyB0byBhIEZTIHRoYXQgd3JpdGVzIHRvIGEgZmlsZQoJICAgICBhcmUgY29tcGxldGUgKGFuZCB0aGVyZWZvcmUgdGhlIGZpbGUgY2FuIG5vdyBiZSBkaXNwb3NlZCBvZgoJICAgICBtZWFuaW5nZnVsbHkgYXQgdGhlIHB5dGhvbiBmaWxlc3lzdGVtJ3MgZGlzY3JldGlvbikKCSAgIC0gQWRkZWQgJ19faW5pdF9fJyBoYW5kbGVyIHRvIGJhc2UgRnVzZSBjbGFzcywgd2hpY2ggYWxsb3dzCgkgICAgIHlvdXIgUHl0aG9uIGNsYXNzIHRvIGtub3cgdGhlIG1vdW50cG9pbnQgYW5kIG1vdW50IGFyZ3MsCgkgICAgIGFzIGF0dHJpYnV0ZXMgbXlmcy5tb3VudHBvaW50LCBteWZzLm9wdGxpc3QsIG15ZnMub3B0ZGljdAoJCgkqIEdlbmVyYWw6CgkgICAtIGFkZGVkICdtb3VudC5mdXNlJyBzY3JpcHQgKGluIHV0aWwvIGRpciksIHdoaWNoIGlzIG1lYW50IHRvIGJlCgkgICAgIHN5bWxpbmtlZCBmcm9tIC9zYmluLCBhbmQgd2hpY2ggYWxsb3dzIEZVU0UgZmlsZXN5c3RlbXMgdG8KCSAgICAgYmUgbW91bnRlZCB3aXRoIHRoZSAnbW91bnQnIGNvbW1hbmQsIGFuZCBsaXN0ZWQgaW4gZnN0YWI7CgkgICAgIGFsc28sIG1vdW50IGFyZ3VtZW50cyBnZXQgcGFzc2VkIHRvIHlvdXIgZmlsZXN5c3RlbQoKCjIwMDMtMTEtMDQgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogRml4IGtlcm5lbCB2ZXJzaW9uIGRldGVjdGlvbiAoYWdhaW4pLiAgQnVncmVwb3J0IGJ5IFBldGVyIExldmFydAoKMjAwMy0xMS0wMyAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBBcHBsaWVkIHJlYWQgY29tYmluaW5nIHBhdGNoIGJ5IE1pY2hhZWwgR3JpZ29yaWV2ICh0ZXN0ZWQgYnkKCVZhbGllbnQgR291Z2ggYW5kIFZpbmNlbnQgV2FnZWxhYXIpCgoyMDAzLTEwLTIyICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIE10YWIgaGFuZGxpbmcgZml4IGluIGZ1c2VybW91bnQgYnkgIlZhbGllbnQgR291Z2giIChTRiBwYXRjaAoJIzc2NjQ0MykKCQoyMDAzLTEwLTEzICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEVycm9yIGNvZGUgZml4ZXMgaW4ga2VybmVsIG1vZHVsZQoJCjIwMDMtMTAtMDQgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSoga2VybmVsIHZlcnNpb24gZGV0ZWN0aW9uIGZpeAoKCSogZnVzZXJtb3VudCBub3cgdXNlcyAibGF6eSIgdW1vdW50IG9wdGlvbgoKCSogZnVzZXJtb3VudCBjYW4gdXNlIG1vZHByb2JlIHdpdGggbW9kdWxlLWluaXQtdG9vbHMKCjIwMDMtMDktMDggIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogSW50ZWdyYXRlZCBjYWNoaW5nIHBhdGNoIGJ5IE1pY2hhZWwgR3JpZ29yaWV2CgoJKiBBZGRlZCAiRmlsZXN5c3RlbXMiIGZpbGUgd2l0aCBkZXNjcmlwdGlvbnMgb2YgcHJvamVjdHMgdXNpbmcKCUZVU0UKCgkqIEFkZGVkIHBhdGNoIGJ5IE1pY2hhZWwgR3JpZ29yaWV2IHRvIGFsbG93IGNvbXBsaWF0aW9uIG9mIEZVU0UKCWtlcm5lbCBtb2R1bGUgZm9yIDIuNiBrZXJuZWxzCgoyMDAzLTA2LTAyICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEFuZCBhbm90aGVyIHNwZWMtZmlsZSBmaXggYnkgQWNoaW0gU2V0dGVsbWVpZXIKCjIwMDMtMDUtMjYgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogU3BlYy1maWxlIGZpeCBieSBBY2hpbSBTZXR0ZWxtZWllcgoKMjAwMy0wMy0xMCAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBGaXggdW1vdW50IG9vcHMgKGZvdW5kIGJ5IFNhbXVsaSBL5HJra+RpbmVuKQoKMjAwMy0wMy0wNSAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBNZXJnZSBvZiBmdXNlX3JlZGhhdC5zcGVjIGFuZCBmdXNlLnNwZWMgYnkgQWNoaW0gU2V0dGVsbWVpZXIKCjIwMDMtMDMtMDQgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogVXBkYXRlZCBmdXNlLnNwZWMgZmlsZSAoQWNoaW0gU2V0dGVsbWVpZXIpCgoyMDAzLTAyLTE5ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFZlcnNpb24gMS4wIHJlbGVhc2VkCgoyMDAzLTAyLTEyICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFN1U0UgY29tcGlsYXRpb24gZml4IGJ5IEp1YW4tTWFyaWFubyBkZSBHb3llbmVjaGUKCjIwMDItMTItMTAgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogVGhlIHJlbGVhc2UoKSBWRlMgY2FsbCBpcyBub3cgZXhwb3J0ZWQgdG8gdGhlIEZVU0UgaW50ZXJmYWNlCgoyMDAyLTEyLTA1ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIDY0IGJpdCBmaWxlIG9mZnNldCBmaXhlcyBpbiB0aGUgZnVzZSBrZXJuZWwgbW9kdWxlCgoJKiBBZGRlZCBmdW5jdGlvbiAnZnVzZV9leGl0KCknIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGV4aXQgdGhlIG1haW4KCWxvb3AKCjIwMDItMTItMDMgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogQWRkZWQgX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgZGVmaW5lIHRvIGZ1c2UuaC4gIE5vdGUsIHRoYXQgdGhpcyBpcwoJYW4gaW5jb21wYXRpYmxlIGludGVyZmFjZSBjaGFuZ2UuCgoyMDAyLTEwLTI4ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFBvcnRhYmxpbGl0eSBmaXggKGJ1ZyByZXBvcnRlZCBieSBDLiBDaHJpcyBFcndheSkKCjIwMDItMTAtMjUgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogVXNlIE1hcmsgR2xpbmVzJyBmZCBwYXNzaW5nIG1ldGhvZCBmb3IgZGVmYXVsdCBvcGVyYXRpb24gaW5zdGVhZAoJb2Ygb2xkIHJlZXhlYwoKMjAwMi0xMC0yMiAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBmaXggIlN0YWxlIE5GUyBmaWxlIGhhbmRsZSIgYnVnIGNhdXNlZCBieSBjaGFuZ2VzIGluIDIuNC4xOQoKMjAwMi0xMC0yMiAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBmaXggaW5jb21wYXRpYmxpdHkgd2l0aCBSZWQgSGF0IGtlcm5lbHMsIHdpdGggaGVscCBmcm9tIE5hdGhhbgoJVGhvbXBzb24tQW1hdG8uCgoyMDAyLTA0LTE4ICBNYXJrIEdsaW5lcyA8bWFya0BnbGluZXMub3JnPgoKCSogYWRkZWQgYW4gYWx0ZXJuYXRpdmUgdG8gZnVzZV9tb3VudCgpLCBjYWxsZWQKICAgICAgZnVzZV9tb3VudF9pb3NsYXZlKCksIHdoaWNoIGRvZXMgbm90IG5lZWQgdG8gcmVleGVjIHRoZQogICAgICBGVVNFIHByb2dyYW0uCgkqIGFkZGVkIGEgc21hbGwgaGVscGVyIHV0aWwgbmVlZGVkIGJ5IGZ1c2VfbW91bnRfaW9zbGF2ZSgpLgoKMjAwMi0wMy0xNiAgTWFyayBHbGluZXMgPG1hcmtAZ2xpbmVzLm9yZz4KCgkqIHVzZSBzdHJ1Y3QgZnVzZV9zdGF0ZnMgZXZlcnl3aGVyZSBwb3NzaWJsZSB0byBhdm9pZCBwcm9ibGVtcwogICAgICB3aXRoIHRoZSBoZWFkZXJmaWxlcyBjaGFuZ2luZyBzdHJ1Y3Qgc3RhdGZzIG1lbWJlciBzaXplcwoKMjAwMi0wMy0wMSAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBBbm90aGVyIFJQTSBzcGVjIGZpbGUgZm9yIFJlZEhhdCA+PSA3IGJ5IElhbiBQaWxjaGVyCgoyMDAyLTAxLTE0ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFJQTSBzdXBwb3J0IGJ5IEFjaGltIFNldHRlbG1laWVyCgoyMDAyLTAxLTA5ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFZlcnNpb24gMC45NSByZWxlYXNlZAoJCjIwMDItMDEtMDkgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogUmV2YWlkYXRlIGFsbCBwYXRoIGNvbXBvbmVudHMgbm90IGp1c3QgdGhlIGxhc3QsIHRoaXMgbWVhbnMgYQoJdmVyeSBzbWFsbCBwZXJmb3JtYW5jZSBwZW5hbHR5IGZvciBiZWluZyBtb3JlIHVwLXRvLWRhdGUuCgoyMDAyLTAxLTA4ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFVwZGF0ZSBhbmQgZml4IHB5dGhvbiBpbnRlcmZhY2UKCjIwMDItMDEtMDcgIE1hcmsgR2xpbmVzIDxtYXJrQGdsaW5lcy5vcmc+CgkKCSogQWRkZWQgc3RhdGZzKCkgc3VwcG9ydCB0byBrZXJuZWwsIGxpYiwgZXhhbXBsZXMsIGFuZCBwZXJsIQoKMjAwMS0xMi0yNiAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBCZXR0ZXIgY3Jvc3MgY29tcGlsYXRpb24gc3VwcG9ydAoKCSogUG9ydGVkIHRvIENvbXBhcSBJUEFRCgoyMDAxLTEyLTIwICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCQoJKiBBZGRlZCBmdW5jdGlvbiBmdXNlX2dldF9jb250ZXh0KCkgdG8gbGlicmFyeSBBUEkgKGluc3BpcmVkIGJ5CglwYXRjaCBmcm9tIE1hdHQgUnlhbikgCgkKCSogQWRkZWQgZmxhZ3MgdG8gZnVzZXJtb3VudCBhbmQgdG8ga2VybmVsIGludGVyZmFjZSB0byBjb250cm9sCglwZXJtaXNzaW9uIGNoZWNraW5nCgoJKiBJbnRlZ3JhdGVkIGZ1c2Vfc2V0X29wZXJhdGlvbnMoKSBpbnRvIGZ1c2VfbmV3KCkKCjIwMDEtMTItMDggIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogQXBwbGllZCBoZWFkZXIgcHJvdGVjdGlvbiArIGV4dGVybiAiQyIgcGF0Y2ggYnkgUm9sYW5kCglCYXVlcnNjaG1pZHQKCjIwMDEtMTItMDIgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogQWRkZWQgcGVybCBiaW5kaW5ncyBieSBNYXJrIEdsaW5lcyAKCjIwMDEtMTEtMjEgIE1pa2xvcyBTemVyZWRpIDxtc3plcmVkaUBpbmYuYm1lLmh1PgoKCSogQ2xlYW5lZCB1cCB3YXkgb2YgbW91bnRpbmcgc2ltcGxlIGZpbGVzeXN0ZW1zLgoKCSogZnVzZV9tYWluKCkgaGVscGVyIGZ1bmN0aW9uIGFkZGVkCgoyMDAxLTExLTE4ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCQoJKiBPcHRpbWl6ZWQgcmVhZC93cml0ZSBvcGVyYXRpb25zLCBzbyB0aGF0IG1pbmltYWwgY29weWluZyBvZiBkYXRhCglpcyBkb25lCgoyMDAxLTExLTE0ICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIFB5dGhvbiBiaW5kaW5ncyBieSBKZWZmIEVwbGVyIGFkZGVkCgoyMDAxLTExLTEzICBNaWtsb3MgU3plcmVkaSA8bXN6ZXJlZGlAaW5mLmJtZS5odT4KCgkqIEZpeGVkIHZmc21vdW50IHJlZmVyZW5jZSBsZWFrIGluIGZ1c2VfZm9sbG93X2xpbmsKCgkqIEZTIGJsb2Nrc2l6ZSBpcyBzZXQgdG8gUEFHRV9DQUNIRV9TSVpFLCBibGtzaXplIGF0dHJpYnV0ZSBmcm9tCgl1c2Vyc3BhY2UgaXMgaWdub3JlZAoKMjAwMS0xMS0wOSAgTWlrbG9zIFN6ZXJlZGkgPG1zemVyZWRpQGluZi5ibWUuaHU+CgoJKiBTdGFydGVkIENoYW5nZUxvZwo=