CSoqKiBUaGlzIGZpbGUgaXMgb2Jzb2xldGUuIENoYW5nZXMgYXJlIGxpc3RlZCBpbiB0aGUgbWFpbgoJKioqIENoYW5nZUxvZyBub3cuIFBsZWFzZSBkbyBub3QgZWRpdC4KCk1vbiBNYXIgMjMgMTc6MDA6MzYgMTk5OCAgTWFyY2VsIEJhdXIgPG1iYXVyQGcyNi5ldGh6LmNoPgoKICAgICAgICAqIEFkZGVkIHByZWxpbWluYXJ5IFByaW50KCkgZGlhbG9nIGluIFttYWNyby5jXQoKU3VuIEphbiAxOCAyMzowNTowNCAxOTk4ICBLYXJsIEJhY2tzdHL2bSA8a2FybF9iQGdlb2NpdGllcy5jb20+CgogICAgICAgICogW1N3LnJjXQogICAgICAgIEFkZGVkIFN3ZWRpc2ggbGFuZ3VhZ2Ugc3VwcG9ydC4KCkZyaSBKdWwgIDQgMTI6MDA6MDAgMTk5NyAgSGVucmlrIE9sc2VuIDxIZW5yaWsuT2xzZW5AaWFlc3RlLmRrPgoKCSogW0RhLnJjXSAobmV3KQoJQWRkZWQgRGFuaXNoIGxhbmd1YWdlIHN1cHBvcnQuCgpUdWUgSnVuICAzIDA3OjQ3OjQyIDE5OTcgIE1hcmNlbCBCYXVyIDxtYmF1ckBnMjYuZXRoei5jaAoKCSogW1ZhLnJjXSAobmV3KQoJQWRkZWQgVmFsbGFkZXIgKFJ1bWFudHNjaCBMYWRpbikgbGFuZ3VhZ2Ugc3VwcG9ydC4KCldlZCBGZWIgMTIgMDA6NTg6MzcgMTk5NyAgRWxrZXIgQ2F2aW5hIDxlbGtlckBtYWlsLmFzaWFuZXQuaXQ+CgoJKiBbSXQucmNdIChuZXcpCglBZGRlZCBJdGFsaWFuIGxhbmd1YWdlIHN1cHBvcnQuCgpGcmkgSmFuIDI0IDExOjI3OjM3IDE5OTcgIEJhbmcgSnVuLVlvdW5nICA8YmFuZ2p5QG5vd251cmkubm93Y29tLmNvLmtyPgoKCSogW0tvLnJjXSAobmV3KQoJQWRkZWQgS29yZWFuIGxhbmd1YWdlIHN1cHBvcnQuCgpNb24gSnVsIDIyIDIwOjMwOjExIDE5OTYgIEp1c3NpIFRpcmtrb25lbiA8anRAbW9kZWVtaS5jcy50dXQuZmk+CgoJKiBbRmkucmNdIChuZXcpCglBZGRlZCBGaW5uaXNoIGxhbmd1YWdlIHN1cHBvcnQuCgpTYXQgTWF5IDE4IDExOjA2OjAyIDE5OTYgIFBhYmxvIFNhcmF0eGFnYSA8c3J0eGdAZjIyMTkubjI5My56Mi5maWRvbmV0Lm9yZz4KCgkqIFtGci5yY10gKG5ldykKIAlBZGRlZCBGcmVuY2ggbGFuZ3VhZ2Ugc3VwcG9ydC4KClRodSBNYXkgMTYgMTk6MjQ6MTkgMTk5NiAgVWxyaWNoIFNjaG1pZCAgPHVzY2htaWRAbWFpbC5oaC5wcm92aS5kZT4KCgkqIFttYWNyby5sZXgubF0gW21hY3JvLnlhY2MueV0KCVN1cHBvcnQgb2xkZXIgdmVyc2lvbnMgb2YgRmxleC4KCk1vbiBBcHIgMjkgMTk6NDg6MTUgMTk5NiAgVWxyaWNoIFNjaG1pZCAgPHVzY2htaWRAbWFpbC5oaC5wcm92aS5kZT4KCgkqIFt3aW5oZWxwLmNdIFt3aW5oZWxwLmhdIFtobHBmaWxlLmNdIFtobHBmaWxlLmhdCglbbWFjcm8uY10gW21hY3JvLmhdIFttYWNyby5sZXgubF0gW21hY3JvLnlhY2MueV0KIAlbc3RyaW5nLmNdIFtFbi5yY10gW0RlLnJjXSBbWHgucmNdIFtobHAyc2dtbC5jXQoJT3JpZ2luYWwgYnkgVWxyaWNoIFNjaG1pZAoK